public Stream<? extends AssociationDescriptor> manyAssociations() { return model.state().manyAssociations(); }
private Object doGuessDeserialize( ModuleDescriptor module, ValueType valueType, Node xml ) { // TODO Could do better by detecting <collection/>, <map/> and <value/> Optional<String> typeInfo = getTypeInfo( xml ); if( typeInfo.isPresent() ) { StatefulAssociationCompositeDescriptor descriptor = statefulCompositeDescriptorFor( module, typeInfo.get() ); if( descriptor != null ) { return deserializeStatefulAssociationValue( ( (CompositeDescriptor) descriptor ).module(), descriptor.valueType(), xml ); } } throw new SerializationException( "Don't know how to deserialize " + valueType + " from " + xml ); }
descriptor.valueType(), mapValue );
"_type: " + typeInfo + " could not be resolved while deserializing " + value ); valueType = descriptor.valueType();
public Stream<? extends AssociationDescriptor> namedAssociations() { return model.state().namedAssociations(); } }
@SuppressWarnings( "unchecked" ) private <T> T doGuessDeserialize( ModuleDescriptor module, ValueType valueType, JsonValue json ) { switch( json.getValueType() ) { case OBJECT: JsonObject object = (JsonObject) json; String typeInfo = object.getString( settings.getTypeInfoPropertyName(), valueType.primaryType().getName() ); StatefulAssociationCompositeDescriptor descriptor = statefulCompositeDescriptorFor( module, typeInfo ); if( descriptor != null ) { return (T) deserializeStatefulAssociationValue( ( (CompositeDescriptor) descriptor ).module(), descriptor.valueType(), object ); } default: throw new SerializationException( "Don't know how to deserialize " + valueType + " from " + json ); } }
public Stream<? extends AssociationDescriptor> namedAssociations() { return model.state().namedAssociations(); } }
@SuppressWarnings( "unchecked" ) private <T> T doGuessDeserialize( ModuleDescriptor module, ValueType valueType, JsonValue json ) { switch( json.getValueType() ) { case OBJECT: JsonObject object = (JsonObject) json; String typeInfo = object.getString( settings.getTypeInfoPropertyName(), valueType.primaryType().getName() ); StatefulAssociationCompositeDescriptor descriptor = statefulCompositeDescriptorFor( module, typeInfo ); if( descriptor != null ) { return (T) deserializeStatefulAssociationValue( ( (CompositeDescriptor) descriptor ).module(), descriptor.valueType(), object ); } default: throw new SerializationException( "Don't know how to deserialize " + valueType + " from " + json ); } }
public Stream<? extends PropertyDescriptor> properties() { return model.state().properties(); }
(StatefulAssociationCompositeDescriptor) instance.descriptor(); AssociationStateHolder state = (AssociationStateHolder) instance.state(); StatefulAssociationValueType<?> valueType = descriptor.valueType();
public Stream<? extends AssociationDescriptor> manyAssociations() { return model.state().manyAssociations(); }
private Object deserializeStatefulAssociationValue( ModuleDescriptor module, StatefulAssociationValueType<?> valueType, Node xml ) { Optional<String> typeInfo = getTypeInfo( xml ); if( typeInfo.isPresent() ) { StatefulAssociationCompositeDescriptor descriptor = statefulCompositeDescriptorFor( module, typeInfo.get() ); if( descriptor == null ) { String typeInfoName = settings.getTypeInfoTagName(); throw new SerializationException( typeInfoName + ": " + typeInfo.get() + " could not be resolved while deserializing " + xml ); } valueType = descriptor.valueType(); } ValueBuilder builder = module.instance().newValueBuilderWithState( valueType.primaryType(), propertyFunction( valueType.module(), xml ), associationFunction( valueType.module(), xml ), manyAssociationFunction( valueType.module(), xml ), namedAssociationFunction( valueType.module(), xml ) ); return builder.newInstance(); }
public Stream<? extends AssociationDescriptor> associations() { return model.state().associations(); }
(StatefulAssociationCompositeDescriptor) instance.descriptor(); AssociationStateHolder state = (AssociationStateHolder) instance.state(); StatefulAssociationValueType<?> valueType = descriptor.valueType();
public Stream<? extends PropertyDescriptor> properties() { return model.state().properties(); }
(StatefulAssociationCompositeDescriptor) instance.descriptor(); AssociationStateHolder state = (AssociationStateHolder) instance.state(); StatefulAssociationValueType<?> valueType = descriptor.valueType();
public Stream<? extends AssociationDescriptor> associations() { return model.state().associations(); }
(StatefulAssociationCompositeDescriptor) instance.descriptor(); AssociationStateHolder state = (AssociationStateHolder) instance.state(); StatefulAssociationValueType<?> valueType = descriptor.valueType();
private Object deserializeStatefulAssociationValue( ModuleDescriptor module, StatefulAssociationValueType<?> valueType, JsonObject json ) { String typeInfoName = settings.getTypeInfoPropertyName(); String typeInfo = json.getString( typeInfoName, null ); if( typeInfo != null ) { StatefulAssociationCompositeDescriptor descriptor = statefulCompositeDescriptorFor( module, typeInfo ); if( descriptor == null ) { throw new SerializationException( typeInfoName + ": " + typeInfo + " could not be resolved while deserializing " + json ); } valueType = descriptor.valueType(); } ValueBuilder builder = module.instance().newValueBuilderWithState( valueType.primaryType(), propertyFunction( valueType.module(), json ), associationFunction( valueType.module(), json ), manyAssociationFunction( valueType.module(), json ), namedAssociationFunction( valueType.module(), json ) ); return builder.newInstance(); }
private Object deserializeStatefulAssociationValue( ModuleDescriptor module, StatefulAssociationValueType<?> valueType, JsonObject json ) { String typeInfoName = settings.getTypeInfoPropertyName(); String typeInfo = json.getString( typeInfoName, null ); if( typeInfo != null ) { StatefulAssociationCompositeDescriptor descriptor = statefulCompositeDescriptorFor( module, typeInfo ); if( descriptor == null ) { throw new SerializationException( typeInfoName + ": " + typeInfo + " could not be resolved while deserializing " + json ); } valueType = descriptor.valueType(); } ValueBuilder builder = module.instance().newValueBuilderWithState( valueType.primaryType(), propertyFunction( valueType.module(), json ), associationFunction( valueType.module(), json ), manyAssociationFunction( valueType.module(), json ), namedAssociationFunction( valueType.module(), json ) ); return builder.newInstance(); }