@Override @SuppressWarnings("unchecked") public <T extends Component> ComponentMetadata<T> getMetadata(T object) { return (ComponentMetadata<T>) super.getMetadata(object); }
/** * Should not be called during the game, as the {@link org.terasology.persistence.internal.ReadWriteStorageManager} * creates a copy of the data and uses the same instance in multiple threads. */ @Override public void register(SimpleUri uri, Class<? extends Component> clazz) { super.register(uri, clazz); } }
@Override public ComponentMetadata<?> resolve(String name, Name context) { return (ComponentMetadata<?>) super.resolve(name, context); }
@Override public void register(SimpleUri uri, Class<? extends T> clazz) { ClassMetadata<? extends T, ?> metadata = createMetadata(clazz, reflectFactory, copyStrategyLibrary, uri); if (metadata != null) { classLookup.put(clazz, metadata); ClassMetadata<? extends T, ?> prev = uriLookup.put(uri.getObjectName(), uri.getModuleName(), metadata); if (prev != null && !prev.equals(metadata)) { logger.warn("Duplicate entry for '{}': {} and {}", uri, prev.getType(), metadata.getType()); } } }
public AbstractClassLibrary(AbstractClassLibrary<T> factory, CopyStrategyLibrary copyStrategies) { this.reflectFactory = factory.reflectFactory; this.copyStrategyLibrary = copyStrategies; for (Table.Cell<Name, Name, ClassMetadata<? extends T, ?>> cell: factory.uriLookup.cellSet()) { Name objectName = cell.getRowKey(); Name moduleName = cell.getColumnKey(); ClassMetadata<? extends T, ?> oldMetaData = cell.getValue(); Class<? extends T> clazz = oldMetaData.getType(); SimpleUri uri = oldMetaData.getUri(); ClassMetadata<? extends T, ?> metadata = createMetadata(clazz, factory.reflectFactory, copyStrategies, uri); if (metadata != null) { classLookup.put(clazz, metadata); uriLookup.put(objectName, moduleName, metadata); } else { throw new RuntimeException("Failed to create copy of class library"); } } }
@Override @SuppressWarnings("unchecked") public <T extends Event> EventMetadata<T> getMetadata(Class<T> clazz) { return (EventMetadata<T>) super.getMetadata(clazz); }
@Override public ComponentMetadata<? extends Component> resolve(String name) { return (ComponentMetadata<? extends Component>) super.resolve(name); }
@Override @SuppressWarnings("unchecked") public <T extends Event> EventMetadata<T> getMetadata(T object) { return (EventMetadata<T>) super.getMetadata(object); }
@Override public ComponentMetadata<?> resolve(String name, Module context) { return (ComponentMetadata<?>) super.resolve(name, context); }
@Override @SuppressWarnings("unchecked") public EventMetadata<? extends Event> getMetadata(SimpleUri uri) { return (EventMetadata<? extends Event>) super.getMetadata(uri); }
@Override public ClassMetadata<? extends T, ?> resolve(String name, Name context) { Module moduleContext = moduleManager.getEnvironment().get(context); if (moduleContext != null) { return resolve(name, moduleContext); } return null; }
@Override @SuppressWarnings("unchecked") public <T extends Component> ComponentMetadata<T> getMetadata(Class<T> clazz) { return (ComponentMetadata<T>) super.getMetadata(clazz); }
@Override public ComponentMetadata<? extends Component> getMetadata(SimpleUri uri) { return (ComponentMetadata<? extends Component>) super.getMetadata(uri); }
@Override @SuppressWarnings("unchecked") public <U extends T> ClassMetadata<U, ?> getMetadata(U object) { if (object != null) { return getMetadata((Class<U>) (object.getClass())); } return null; }
@Override public ClassMetadata<? extends T, ?> resolve(String name) { SimpleUri uri = new SimpleUri(name); if (uri.isValid()) { return getMetadata(uri); } List<ClassMetadata<? extends T, ?>> possibilities = getMetadata(name); if (possibilities.size() == 1) { return possibilities.get(0); } return null; }
@Override public <TYPE extends T> TYPE copy(TYPE object) { ClassMetadata<TYPE, ?> info = getMetadata(object); if (info != null) { return info.copy(object); } return null; }
@Override public List<ClassMetadata<? extends T, ?>> getMetadata(String name) { return getMetadata(new Name(name)); }
SimpleUri uri = new SimpleUri(name); if (uri.isValid()) { return getMetadata(uri); List<ClassMetadata<? extends T, ?>> possibilities = getMetadata(name); switch (possibilities.size()) { case 0: