public static void registerLayerEditorDescriptor(FileObject fileObject) throws Exception { Class<? extends LayerEditor> editorClass = getClassAttribute(fileObject, "editorClass", LayerEditor.class, false); Class<? extends ExtensionFactory> editorFactoryClass = getClassAttribute(fileObject, "editorFactoryClass", ExtensionFactory.class, false); Assert.argument(editorClass != null || editorFactoryClass != null, "Either 'editorClass' or 'editorFactoryClass' attributes must be given"); Class<? extends Layer> layerClass = getClassAttribute(fileObject, "layerClass", Layer.class, false); Class<? extends LayerType> layerTypeClass = getClassAttribute(fileObject, "layerTypeClass", LayerType.class, false); Assert.argument(layerClass != null || layerTypeClass != null, "Either 'layerClass' or 'layerTypeClass' attributes must be given"); if (layerClass != null) { ExtensionManager.getInstance().register(layerClass, createExtensionFactory(editorClass, editorFactoryClass)); } else { ExtensionManager.getInstance().register(layerTypeClass, createExtensionFactory(editorClass, editorFactoryClass)); } }