-public interface Config {
-
- Id<DocumentType> addDocumentType(DocumentType aType);
-
- void removeDocumentType(Id<DocumentType> aId);
-
- Collection<DocumentType> getDocumentTypes();
-
- Id<Transformation> addTransformation(Transformation aTransformation);
-
- void removeTransformation(Id<Transformation> aId);
-
- Collection<Transformation> getTransformations();
-
- Id<Filter> addFilter(Filter aFilter);
-
- void removeFilter(Id<Filter> aId);
-
- Collection<Filter> getFilters();
-
-}
+public interface Config<T extends Identifiable> extends Identifiable<Config> {
+ /**
+ * Adds an item. No item with the same id may exist.
+ *
+ * @param aT
+ * item
+ * @throws ConfigException
+ * In case an object with the same id already exists.
+ */
+ void add(T aT);
+
+ /**
+ * Removes the item with a given id.
+ *
+ * @param aId
+ * Item id.
+ * @return true iff the item was removed.
+ */
+ boolean remove(Id<T> aId);
+
+ /**
+ * @return All available items.
+ */
+ List<T> values();
+}
\ No newline at end of file