+
+ /**
+ * Get a possible tech type table key property for a component type
+ *
+ * @param graph A read interface to the graph db
+ * @param componentType An STR.ComponentType instance
+ * @return The name of a property that uses DN.TechType.Functions.techTypeCodeValueAccessor or null if not found
+ * @throws DatabaseException
+ */
+ public static String getPossibleTechTypeKeyName(ReadGraph graph, Resource componentType) throws DatabaseException {
+ return graph.syncRequest(new PossibleTechTypeKeyName(componentType), TransientCacheListener.instance());
+ }
+
+ /**
+ * Get a possible tech type table from a given model, for a given component type.
+ *
+ * @param graph A read interface to the graph db
+ * @param model A model resource (or other index root)
+ * @param componentType An STR.ComponentType instance
+ * @return A tech type table resource or null if not found
+ * @throws DatabaseException
+ */
+ public static Resource getPossibleTechTypeTable(ReadGraph graph, Resource model, Resource componentType) throws DatabaseException {
+ return graph.syncRequest(new PossibleTechTypeTable(model, componentType), TransientCacheListener.instance());
+ }
+
+ /**
+ * Get the contents of a tech type table, indexed by item code and property name.
+ *
+ * @param graph A read interface to the graph db
+ * @param table A tech type table resource
+ * @return A map from item code to a map of property values
+ * @throws DatabaseException
+ */
+ public static Map<String, Map<String, String>> getTechTypeData(ReadGraph graph, Resource table) throws DatabaseException {
+ return graph.syncRequest(new TechTypeTableData(table), TransientCacheListener.instance());
+ }
+
+ /**
+ * Get the enabled contents of a tech type table, indexed by item code and property name.
+ *
+ * The returned map is a subset of the one returned by {@link #getTechTypeData(ReadGraph, Resource)}
+ * with only the items whose index is listed in the HasEnabledItems property.
+ *
+ * @param graph A read interface to the graph db
+ * @param table A tech type table resource
+ * @return A map from item code to a map of property values
+ * @throws DatabaseException
+ */
+ public static Map<String, Map<String, String>> getEnabledTechTypeData(ReadGraph graph, Resource table) throws DatabaseException {
+ return graph.syncRequest(new TechTypeTableData(table, true), TransientCacheListener.instance());
+ }
+
+ /**
+ * Get a single tech type table item that has the given item code, or null, if not found.
+ *
+ * The returned map is a subset of the one returned by {@link #getTechTypeData(ReadGraph, Resource)}
+ * with only the items whose index is listed in the HasEnabledItems property.
+ *
+ * @param graph A read interface to the graph db
+ * @param table A tech type table resource
+ * @return A map of property values or null if not found
+ * @throws DatabaseException
+ */
+ public static Map<String, String> getPossibleTechTypeItem(ReadGraph graph, Resource table, String itemCode) throws DatabaseException {
+ return graph.syncRequest(new PossibleTechTypeItem(table, itemCode), TransientCacheListener.instance());
+ }