public interface ExtendedMetadata
SessionFactory. During
 construction, the metadata is created and cached for later use.SessionFactory| Modifier and Type | Interface and Description | 
|---|---|
| static class  | ExtendedMetadata.Immutables | 
| static class  | ExtendedMetadata.ImplSole implementation of ExtendedMetadata. | 
| static class  | ExtendedMetadata.Locksinner class which wraps the information (index number, path, etc) related to
 what fields a particular object can lock. | 
| static class  | ExtendedMetadata.RelationshipSimple value class to maintain all of the state for use by
  getRelationship(String, String)andgetSQLJoin(String, String, String, String). | 
| Modifier and Type | Method and Description | 
|---|---|
| Map<String,Long> | countLocks(org.hibernate.Session session,
          Long id,
          String[][] lockChecks,
          String clause)Takes the lock checks returned by  getLockChecks(Class)and
 performs the actual check returning a map from class to total number
 of locks. | 
| Set<Class<IAnnotated>> | getAnnotatableTypes()Returns all the classes which implement  IAnnotated | 
| Set<Class<Annotation>> | getAnnotationTypes()Returns all the classes which subclass  Annotation | 
| Set<String> | getClasses() | 
| String | getCountQuery(String field)Returns the query for obtaining the number of collection items to a
 particular instance. | 
| Class<IObject> | getHibernateClass(String table)Given the name of a database table or alternatively the simple class name
 (non-fully qualified) of an IObject, this method returns the class which
 Hibernate will map that table to. | 
| String[][] | getLockCandidateChecks(Class<? extends IObject> klass,
                      boolean onlyWithGroups)Rather than iterating over an  IObjectlikegetLockCandidates(IObject)this method returns type/field name
 pairs (likegetLockChecks(Class)) to allow performing the
 queries manually. | 
| IObject[] | getLockCandidates(IObject iObject) | 
| String[][] | getLockChecks(Class<? extends IObject> klass)returns all class/field name pairs which may possibly link to an object
 of type  klass. | 
| Set<String> | getMapProperties(String className)Get the names of any String→RString map properties this class has, otherwise an empty set if none. | 
| String | getRelationship(String from,
               String to)Walks the data on what locks what
 for "from" argument to see if there is any direct relationship to the
 "to" argument. | 
| String | getSQLJoin(String fromType,
          String fromAlias,
          String toType,
          String toAlias)provides the link between two tables similar to
 {link  getRelationship(String, String). | 
| boolean | mayHaveMapProperties(Class<? extends IObject> iObjectClass)Check if an object of this class may have map properties. | 
Set<Class<IAnnotated>> getAnnotatableTypes()
IAnnotatedSet<Class<Annotation>> getAnnotationTypes()
AnnotationString getCountQuery(String field) throws ApiUsageException
field - Field name as specified in the class.ApiUsageException - if return value would be null.Class<IObject> getHibernateClass(String table)
table - a database table name, or simple class name of a model objectString[][] getLockCandidateChecks(Class<? extends IObject> klass, boolean onlyWithGroups)
IObject like
 getLockCandidates(IObject) this method returns type/field name
 pairs (like getLockChecks(Class)) to allow performing the
 queries manually.
 If onlyWithGroups is true, then only checks which point to non-IGlobal
 objects will be returned.klass - Not null.onlyWithGroups - if should omit checks that point to IGlobalsString[][] getLockChecks(Class<? extends IObject> klass)
klass.Map<String,Long> countLocks(org.hibernate.Session session, Long id, String[][] lockChecks, String clause)
getLockChecks(Class) and
 performs the actual check returning a map from class to total number
 of locks. The key "*" contains the total value.
 If the id argument is null, then checks will be against all rows rather
 than individual objects, e.g.
 select count(x) from Linker x, Linked y where x.$FIELD.id = y.id $CLAUSE;otherwise
select count(x) from Linker x where x.$FIELD.id = :id $CLAUSE'If the clause argument is null or empty it will be omitted.
String getRelationship(String from, String to)
String getSQLJoin(String fromType, String fromAlias, String toType, String toAlias)
getRelationship(String, String). However, whereas
 getRelationship(String, String) needs to be called twice, once
 for each of the Hibernate directions,
 getSQLJoin(String, String, String, String) need only ever be
 called once since there will be only one correct SQL join.
 For example, getRelationship("Image", "DatasetImageLink") returns
 "datasetLinks" while getRelationship("DatasetImageLink", "Image")
 returns "child". getSQLJoin("Image", "I", "DatasetImageLink", "L"),
 however, will always return "I.id = L.child" (though the order may be
 reversed).boolean mayHaveMapProperties(Class<? extends IObject> iObjectClass)
iObjectClass - a classSet<String> getMapProperties(String className)
className - the name of a class, as from Class.getName()
                
                
Version: 5.2.5-ice35-b28
Copyright © 2016 The University of Dundee & Open Microscopy Environment. All Rights Reserved.