private JsonOverlay<V> valueOverlayFor(V val) { return valueFactory.create(val, this, refMgr); }
public JsonOverlay<V> create(V value, JsonOverlay<?> parent, ReferenceManager refMgr) { JsonOverlay<V> overlay = _create(value, parent, refMgr); overlay._elaborate(true); return overlay; }
public String getSignature() { return getOverlayClass().getSimpleName(); }
/* package */JsonOverlay<V> getOverlay() { if (!reference.isResolved()) { reference.resolve(); } if (target == null && reference.isValid()) { ReferenceRegistry registry = refMgr.getRegistry(); { @SuppressWarnings("unchecked") JsonOverlay<V> castTarget = (JsonOverlay<V>) registry.getOverlay(reference.getNormalizedRef(), factory.getSignature()); this.target = castTarget; } if (target == null) { @SuppressWarnings("unchecked") JsonOverlay<V> castTarget = (JsonOverlay<V>) registry.getOverlay(reference.getJson(), factory.getSignature()); this.target = castTarget; } if (target == null) { target = factory.create(reference.getJson(), null, reference.getManager()); target._setCreatingRef(reference); refMgr.getRegistry().register(reference.getNormalizedRef(), factory.getSignature(), target); } } return target; }
overlay = refOverlay.getOverlay(); if (overlay == null) { overlay = _create((V) null, parent, refMgr); overlay = ((OverlayFactory<V>) overlay._getFactory())._create((V) null, parent, refMgr); overlay._setReference(refOverlay); JsonOverlay<?> existing = refMgr.getRegistry().getOverlay(json, getSignature()); if (existing != null) { overlay = (JsonOverlay<V>) existing; overlay = _create(json, parent, refMgr); overlay._setParent(parent); refMgr.getRegistry().register(json, getSignature(), overlay); if (!overlay._isElaborated()) { overlay._elaborate(true);
@Override public String getSignature() { return String.format("map[%s|%s]", valueFactory.getSignature(), keyPattern != null ? keyPattern : "*"); }
@Override public String getSignature() { return String.format("list[%s]", itemFactory.getSignature()); }
private JsonOverlay<V> itemOverlayFor(V itemValue) { return itemFactory.create(itemValue, this, refMgr); }
@Override public JsonOverlay<PropertySet> _create(PropertySet propertySet, JsonOverlay<?> parent, ReferenceManager refMgr) { JsonOverlay<?> overlay; Class<? extends PropertySet> subtype = getSubtypeOf(propertySet); switch(subtype != null ? subtype.getSimpleName() : "") { case "ExclusivePropertySet": overlay = ExclusivePropertySetImpl.factory.create((ExclusivePropertySet) propertySet, parent, refMgr); break; case "ConditionalPropertySet": overlay = ConditionalPropertySetImpl.factory.create((ConditionalPropertySet) propertySet, parent, refMgr); break; case "InclusivePropertySet": overlay = InclusivePropertySetImpl.factory.create((InclusivePropertySet) propertySet, parent, refMgr); break; case "PropertySetSwitch": overlay = PropertySetSwitchImpl.factory.create((PropertySetSwitch) propertySet, parent, refMgr); break; default: overlay = new PropertySetImpl((PropertySet) propertySet, parent, refMgr); } @SuppressWarnings("unchecked") JsonOverlay<PropertySet> castOverlay = (JsonOverlay<PropertySet>) overlay; return castOverlay; }
@Override public JsonOverlay<LinkStrategy> _create(JsonNode json, JsonOverlay<?> parent, ReferenceManager refMgr) { JsonOverlay<?> overlay; Class<? extends LinkStrategy> subtype = getSubtypeOf(json); switch(subtype != null ? subtype.getSimpleName() : "") { case "ConditionalLink": overlay = ConditionalLinkImpl.factory.create(json, parent, refMgr); break; case "LinkSwitch": overlay = LinkSwitchImpl.factory.create(json, parent, refMgr); break; case "LinkSpec": overlay = LinkSpecImpl.factory.create(json, parent, refMgr); break; default: overlay = new LinkStrategyImpl(json, parent, refMgr); } @SuppressWarnings("unchecked") JsonOverlay<LinkStrategy> castOverlay = (JsonOverlay<LinkStrategy>) overlay; return castOverlay; }
@Override public JsonOverlay<LinkStrategy> _create(LinkStrategy linkStrategy, JsonOverlay<?> parent, ReferenceManager refMgr) { JsonOverlay<?> overlay; Class<? extends LinkStrategy> subtype = getSubtypeOf(linkStrategy); switch(subtype != null ? subtype.getSimpleName() : "") { case "ConditionalLink": overlay = ConditionalLinkImpl.factory.create((ConditionalLink) linkStrategy, parent, refMgr); break; case "LinkSwitch": overlay = LinkSwitchImpl.factory.create((LinkSwitch) linkStrategy, parent, refMgr); break; case "LinkSpec": overlay = LinkSpecImpl.factory.create((LinkSpec) linkStrategy, parent, refMgr); break; default: overlay = new LinkStrategyImpl((LinkStrategy) linkStrategy, parent, refMgr); } @SuppressWarnings("unchecked") JsonOverlay<LinkStrategy> castOverlay = (JsonOverlay<LinkStrategy>) overlay; return castOverlay; }
@Override public JsonOverlay<PropertySet> _create(JsonNode json, JsonOverlay<?> parent, ReferenceManager refMgr) { JsonOverlay<?> overlay; Class<? extends PropertySet> subtype = getSubtypeOf(json); switch(subtype != null ? subtype.getSimpleName() : "") { case "ExclusivePropertySet": overlay = ExclusivePropertySetImpl.factory.create(json, parent, refMgr); break; case "ConditionalPropertySet": overlay = ConditionalPropertySetImpl.factory.create(json, parent, refMgr); break; case "InclusivePropertySet": overlay = InclusivePropertySetImpl.factory.create(json, parent, refMgr); break; case "PropertySetSwitch": overlay = PropertySetSwitchImpl.factory.create(json, parent, refMgr); break; default: overlay = new PropertySetImpl(json, parent, refMgr); } @SuppressWarnings("unchecked") JsonOverlay<PropertySet> castOverlay = (JsonOverlay<PropertySet>) overlay; return castOverlay; }
@Override public JsonOverlay<ReferenceLevelContext> _create(ReferenceLevelContext referenceLevelContext, JsonOverlay<?> parent, ReferenceManager refMgr) { JsonOverlay<?> overlay; Class<? extends ReferenceLevelContext> subtype = getSubtypeOf(referenceLevelContext); switch(subtype != null ? subtype.getSimpleName() : "") { case "RootObjectContext": overlay = RootObjectContextImpl.factory.create((RootObjectContext) referenceLevelContext, parent, refMgr); break; case "ReferencePropertyContext": overlay = ReferencePropertyContextImpl.factory.create((ReferencePropertyContext) referenceLevelContext, parent, refMgr); break; default: overlay = new ReferenceLevelContextImpl((ReferenceLevelContext) referenceLevelContext, parent, refMgr); } @SuppressWarnings("unchecked") JsonOverlay<ReferenceLevelContext> castOverlay = (JsonOverlay<ReferenceLevelContext>) overlay; return castOverlay; }
@Override public JsonOverlay<ReferenceLevelContext> _create(JsonNode json, JsonOverlay<?> parent, ReferenceManager refMgr) { JsonOverlay<?> overlay; Class<? extends ReferenceLevelContext> subtype = getSubtypeOf(json); switch(subtype != null ? subtype.getSimpleName() : "") { case "RootObjectContext": overlay = RootObjectContextImpl.factory.create(json, parent, refMgr); break; case "ReferencePropertyContext": overlay = ReferencePropertyContextImpl.factory.create(json, parent, refMgr); break; default: overlay = new ReferenceLevelContextImpl(json, parent, refMgr); } @SuppressWarnings("unchecked") JsonOverlay<ReferenceLevelContext> castOverlay = (JsonOverlay<ReferenceLevelContext>) overlay; return castOverlay; }
@Override public JsonOverlay<PropertyTypeRealization> _create(JsonNode json, JsonOverlay<?> parent, ReferenceManager refMgr) { JsonOverlay<?> overlay; Class<? extends PropertyTypeRealization> subtype = getSubtypeOf(json); switch(subtype != null ? subtype.getSimpleName() : "") { case "ReferencePropertyRealization": overlay = ReferencePropertyRealizationImpl.factory.create(json, parent, refMgr); break; case "PrimitivePropertyRealization": overlay = PrimitivePropertyRealizationImpl.factory.create(json, parent, refMgr); break; default: overlay = new PropertyTypeRealizationImpl(json, parent, refMgr); } @SuppressWarnings("unchecked") JsonOverlay<PropertyTypeRealization> castOverlay = (JsonOverlay<PropertyTypeRealization>) overlay; return castOverlay; }
@Override public JsonOverlay<PropertyTypeSelector> _create(JsonNode json, JsonOverlay<?> parent, ReferenceManager refMgr) { JsonOverlay<?> overlay; Class<? extends PropertyTypeSelector> subtype = getSubtypeOf(json); switch(subtype != null ? subtype.getSimpleName() : "") { case "ReferencePropertySelector": overlay = ReferencePropertySelectorImpl.factory.create(json, parent, refMgr); break; case "PrimitivePropertySelector": overlay = PrimitivePropertySelectorImpl.factory.create(json, parent, refMgr); break; default: overlay = new PropertyTypeSelectorImpl(json, parent, refMgr); } @SuppressWarnings("unchecked") JsonOverlay<PropertyTypeSelector> castOverlay = (JsonOverlay<PropertyTypeSelector>) overlay; return castOverlay; }
@Override public JsonOverlay<PropertyTypeSelector> _create(PropertyTypeSelector propertyTypeSelector, JsonOverlay<?> parent, ReferenceManager refMgr) { JsonOverlay<?> overlay; Class<? extends PropertyTypeSelector> subtype = getSubtypeOf(propertyTypeSelector); switch(subtype != null ? subtype.getSimpleName() : "") { case "ReferencePropertySelector": overlay = ReferencePropertySelectorImpl.factory.create((ReferencePropertySelector) propertyTypeSelector, parent, refMgr); break; case "PrimitivePropertySelector": overlay = PrimitivePropertySelectorImpl.factory.create((PrimitivePropertySelector) propertyTypeSelector, parent, refMgr); break; default: overlay = new PropertyTypeSelectorImpl((PropertyTypeSelector) propertyTypeSelector, parent, refMgr); } @SuppressWarnings("unchecked") JsonOverlay<PropertyTypeSelector> castOverlay = (JsonOverlay<PropertyTypeSelector>) overlay; return castOverlay; }
@Override public JsonOverlay<AbstractPropertySelector> _create(AbstractPropertySelector abstractPropertySelector, JsonOverlay<?> parent, ReferenceManager refMgr) { JsonOverlay<?> overlay; Class<? extends AbstractPropertySelector> subtype = getSubtypeOf(abstractPropertySelector); switch(subtype != null ? subtype.getSimpleName() : "") { case "PropertyRealization": overlay = PropertyRealizationImpl.factory.create((PropertyRealization) abstractPropertySelector, parent, refMgr); break; case "PropertySelector": overlay = PropertySelectorImpl.factory.create((PropertySelector) abstractPropertySelector, parent, refMgr); break; default: overlay = new AbstractPropertySelectorImpl((AbstractPropertySelector) abstractPropertySelector, parent, refMgr); } @SuppressWarnings("unchecked") JsonOverlay<AbstractPropertySelector> castOverlay = (JsonOverlay<AbstractPropertySelector>) overlay; return castOverlay; }
@Override public JsonOverlay<PropertyTypeRealization> _create(PropertyTypeRealization propertyTypeRealization, JsonOverlay<?> parent, ReferenceManager refMgr) { JsonOverlay<?> overlay; Class<? extends PropertyTypeRealization> subtype = getSubtypeOf(propertyTypeRealization); switch(subtype != null ? subtype.getSimpleName() : "") { case "ReferencePropertyRealization": overlay = ReferencePropertyRealizationImpl.factory.create((ReferencePropertyRealization) propertyTypeRealization, parent, refMgr); break; case "PrimitivePropertyRealization": overlay = PrimitivePropertyRealizationImpl.factory.create((PrimitivePropertyRealization) propertyTypeRealization, parent, refMgr); break; default: overlay = new PropertyTypeRealizationImpl((PropertyTypeRealization) propertyTypeRealization, parent, refMgr); } @SuppressWarnings("unchecked") JsonOverlay<PropertyTypeRealization> castOverlay = (JsonOverlay<PropertyTypeRealization>) overlay; return castOverlay; }
@Override public JsonOverlay<DefinitionContext> _create(DefinitionContext definitionContext, JsonOverlay<?> parent, ReferenceManager refMgr) { JsonOverlay<?> overlay; Class<? extends DefinitionContext> subtype = getSubtypeOf(definitionContext); switch(subtype != null ? subtype.getSimpleName() : "") { case "ResourceDefinitionContext": overlay = ResourceDefinitionContextImpl.factory.create((ResourceDefinitionContext) definitionContext, parent, refMgr); break; case "MessageDefinitionContext": overlay = MessageDefinitionContextImpl.factory.create((MessageDefinitionContext) definitionContext, parent, refMgr); break; default: overlay = new DefinitionContextImpl((DefinitionContext) definitionContext, parent, refMgr); } @SuppressWarnings("unchecked") JsonOverlay<DefinitionContext> castOverlay = (JsonOverlay<DefinitionContext>) overlay; return castOverlay; }