*/
public ComponentMetadata(SimpleUri uri, Class<T> type, ReflectFactory factory, CopyStrategyLibrary copyStrategies) throws NoSuchMethodException {
super(uri, type, factory, copyStrategies, Predicates.<Field>alwaysTrue());
replicated = type.getAnnotation(Replicate.class) != null;
blockLifecycleEventsRequired = type.getAnnotation(RequiresBlockLifecycleEvents.class) != null;
ForceBlockActive forceBlockActiveAnnotation = type.getAnnotation(ForceBlockActive.class);
if (forceBlockActiveAnnotation != null) {
forceBlockActive = true;
retainUnalteredOnBlockChange = forceBlockActiveAnnotation.retainUnalteredOnBlockChange();
}
for (ComponentFieldMetadata<T, ?> field : getFields()) {
if (field.isReplicated()) {
replicated = true;