package io.cattle.platform.object; import io.cattle.platform.object.meta.Relationship; import io.github.ibuildthecloud.gdapi.factory.SchemaFactory; import io.github.ibuildthecloud.gdapi.model.Schema; import java.util.List; import java.util.Map; public interface ObjectManager { <T> T newRecord(Class<T> type); <T> T create(T obj); <T> T create(T obj, Map<String, Object> properties); <T> T create(T obj, Object key, Object... valueKeyValue); <T> T create(Class<T> clz, Map<String, Object> properties); <T> T create(Class<T> clz, Object key, Object... valueKeyValue); <T> T reload(T obj); <T> T persist(T obj); void delete(Object obj); <T> T loadResource(Class<T> type, String resourceId); <T> T loadResource(Class<T> type, Long resourceId); <T> T loadResource(String resourceType, String resourceId); <T> T loadResource(String resourceType, Long resourceId); <T> T setFields(Object obj, Map<String, Object> values); <T> T setFields(Schema schema, Object obj, Map<String, Object> values); <T> T setFields(Object obj, Object key, Object... valueKeyValue); Map<String, Object> convertToPropertiesFor(Object obj, Map<Object, Object> object); <T> List<T> children(Object obj, Class<T> type); <T> List<T> children(Object obj, Class<T> type, String propertyName); <T> List<T> mappedChildren(Object obj, Class<T> type); <T> T findOne(Class<T> clz, Map<Object, Object> values); <T> T findOne(Class<T> clz, Object key, Object... valueKeyValue); <T> T findAny(Class<T> clz, Map<Object, Object> values); <T> T findAny(Class<T> clz, Object key, Object... valueKeyValue); <T> List<T> find(Class<T> clz, Map<Object, Object> values); <T> List<T> find(Class<T> clz, Object key, Object... valueKeyValue); <T> List<T> getListByRelationship(Object obj, Relationship relationship); <T> T getObjectByRelationship(Object obj, Relationship relationship); String getType(Object obj); SchemaFactory getSchemaFactory(); boolean isKind(Object obj, String kind); }