+\r
+ public static <T extends ComponentBase<T>> void update(ReadGraph graph, T component, Variable variable) throws DatabaseException {\r
+ update(null, graph, component, variable);\r
+ }\r
+\r
+ public static <T extends ComponentBase<T>> void update(IProgressMonitor monitor, ReadGraph graph, T component, Variable variable) throws DatabaseException {\r
+ new UpdateComponentUids<T>(monitor, graph, countComponents(component)).update(component, variable);\r
+ }\r
+\r
+ public static <T extends ComponentBase<T>> int countComponents(T component) {\r
+ return new Counter<T>().count(component);\r
+ }\r
+\r
+ private static class Counter<T extends ComponentBase<T>> {\r
+ int counter;\r
+ int count(T component) {\r
+ ++counter;\r
+ for (T child : component.getChildren())\r
+ count(child);\r
+ return counter;\r
+ }\r
+ }\r
+\r