public ManagedObjectVersionBuilder<M> versionBuilder(O object) { ManagedObjectVersionBuilder<M> builder = new ManagedObjectVersionBuilder<M>(this, serializer.toPropertyMap(object)); builder.parents(heads); return builder; }
public VersionNode<PropertyPath, Object, M> buildVersionNode() { ObjectVersion<M> version = build(true); return manager.getVersionNode(version.revision); }
public Schema<ValueType> describeSchema(Class<?> rootClass) { return describeSchema(typeMappings.getTypeDescriptor(rootClass)); }
public Schema<ValueType> describeSchema(TypeDescriptor rootType) { schemaRoot = new Schema.Builder<>(); TypeContext typeContext = new TypeContext(rootType); schemaRoot.setValue(createValueType(PropertyPath.ROOT, typeContext)); processMappings(); return schemaRoot.build(); }
public Builder withMapping(TypeMapping typeMapping) { return register().withMapping(typeMapping); }
private MergeObject<O, M> mergeObject(Merge<PropertyPath, Object, M> merge) { MergeObject<O, M> mergeObject = new MergeObject<>(toObject(merge), merge); heads = merge.getMergeHeads(); return mergeObject; }
public final HierarchyBuilder<R> havingSubClasses(Iterable<Class<? extends R>> subClasses) { for (Class<? extends R> clazz : subClasses) { register(clazz, null); } return this; }
@Override public ObjectVersionGraph<M> build() { return new ObjectVersionGraph<M>(this); } }
public MappingResolver getMappingResolver() { return typeMappings.getMappingResolver(); } }
@Override protected Builder<M> newBuilder() { return new Builder<M>(this); }
@Override public void serialize(PropertyPath path, Object object, WriteContext context) { context.put(path, (Double) object); }
public Schema<ValueType> describeSchema(TypeToken rootType) { return describeSchema(typeMappings.getTypeDescriptor(rootType)); }
public HierarchyBuilder<R> havingSubClass(Class<? extends R> clazz, String alias) { register(clazz, alias); return this; }
public static <M> ObjectVersionGraph<M> init(Version<PropertyPath, Object, M> v1, Version<PropertyPath, Object, M> v2, Version<PropertyPath, Object, M>... rest) { Builder<M> builder = new Builder<M>(); builder.add(v1); builder.add(v2); for (Version<PropertyPath, Object, M> version : rest) { builder.add(version); } return builder.build(); }