@Override
    public <T extends RedGEntity> T getDummy(final AbstractRedG redG, final Class<T> dummyClass) {
        // check if a dummy for this type already exists in cache
        if (this.dummyCache.containsKey(dummyClass)) {
            return dummyClass.cast(this.dummyCache.get(dummyClass));
        }
        final T obj = createNewDummy(redG, dummyClass); // if no one is found, create new
        this.dummyCache.put(dummyClass, obj);
        return obj;
    }
@ Override public < T extends RedGEntity > T getDummy ( final AbstractRedG redG , final Class < T > dummyClass ) { if ( this . dummyCache . containsKey ( dummyClass ) ) { return dummyClass . cast ( this . dummyCache . get ( dummyClass ) ) ; } final T obj = createNewDummy ( redG , dummyClass ) ; this . dummyCache . put ( dummyClass , obj ) ; return obj ; }
Returns a dummy entity for the requested type.
All this method guarantees is that the returned entity is a valid entity with all non null foreign key relations filled in,
it does not guarantee useful or even semantically correct data.
The dummy objects get taken either from the list of objects to insert from the redG object or are created on the fly. The results are cached and the
same entity will be returned for consecutive calls for an entity of the same type.

@param redG       The redG instance
@param dummyClass The class specifying the wanted entity type
@param <T>        The wanted entity type
@return a dummy object of thew required type
@throws DummyCreationException When a new dummy has to be created but this creation fails