package org.openntf.domino.design.impl; /** * * @author Roland Praml, FOCONIS AG * */ public enum ODPMapping { // AppProperties ACL_NOTE("AppProperties", "database.properties", ACLNote.class), // DB_IMAGE("AppProperties", "$DBIcon", DbImage.class), //hicolor image // Code DATABASE_SCRIPT("Code", "dbscript.lsdb", DatabaseScript.class), // SHARED_ACTIONS_NOTE("Code/actions", "Shared Actions", SharedActionsNote.class), // should be *.shac? DESIGN_AGENT_F("Code/Agents", ".fa", DesignAgentF.class), // DESIGN_AGENT_IJ("Code/Agents", ".ija", DesignAgentIJ.class), // DESIGN_AGENT_J("Code/Agents", ".ja", DesignAgentJ.class), // DESIGN_AGENT_LS("Code/Agents", ".lsa", DesignAgentLS.class), // DESIGN_AGENT_A("Code/Agents", ".aa", DesignAgentA.class), // JAR_RESOURCE("Code/Jars", null, JarResource.class), // JAVA_FILE("Code/Java", "*", XspJavaResource.class), // SCRIPT_LIBRARY_JAVA("Code/ScriptLibraries", ".javalib", ScriptLibraryJava.class), // SCRIPT_LIBRARY_SSJS("Code/ScriptLibraries", ".jss", ScriptLibrarySSJS.class), // SCRIPT_LIBRARY_CSJS("Code/ScriptLibraries", ".js", ScriptLibraryCSJS.class), // SCRIPT_LIBRARY_LS("Code/ScriptLibraries", ".lss", ScriptLibraryLS.class), // WEB_SERVICE_CONSUMER_LS("Code/WebServiceConsumer", ".lswsc", WebServiceConsumerLS.class), // WEB_SERVICE_CONSUMER_JAVA("Code/WebServiceConsumer", ".javalib", WebServiceConsumerJava.class), // WEB_SERVICE_PROVIDER_LS("Code/WebServices", ".lws", WebServiceProviderLS.class), // WEB_SERVICE_PROVIDER_JAVA("Code/WebServices", ".jws", WebServiceProviderJava.class), // // CompositeApplication COMPOSITE_APP("CompositeApplications/Applications", ".ca", CompositeApp.class), // COMPOSITE_COMPONENT("CompositeApplications/Components", null, CompositeComponent.class), // COMPOSITE_WIRING("CompositeApplications/WiringProperties", ".wsdl", CompositeWiring.class), // CUSTOM_CONTROL("CustomControls", null, CustomControl.class), // DATA_CONNECTION_RESOURCE("Data/DataConnections", ".dcr", DataConnectionResource.class), // DB2_VIEW("Data/DB2AccessViews", ".db2v", DB2View.class), // FOLDER("Folders", ".folder", Folder.class), // DESIGN_FORM("Forms", ".form", DesignForm.class), // FRAMESET("Framesets", ".frameset", Frameset.class), // DESIGN_PAGE("Pages", ".page", DesignPage.class), // // Resources ABOUT_DOCUMENT("Resources", "AboutDocument", AboutDocument.class), // ICON_NOTE("Resources", "IconNote", IconNote.class), // USINGDOCUMENT("Resources", "UsingDocument", UsingDocument.class), // DESIGN_APPLET("Resources/Applets", ".applet", DesignApplet.class), // FILE_RESOURCE("Resources/Files", null, FileResource.class), // IMAGE_RESOURCE("Resources/Images", null, ImageResource.class), // STYLESHEET("Resources/StyleSheets", ".css", StyleSheet.class), // THEME("Resources/Themes", null, Theme.class), // // Shared elements SHARED_COLUMN("SharedElements/Columns", ".column", SharedColumn.class), // SHARED_FIELD("SharedElements/Fields", ".field", SharedField.class), // NAVIGATOR("SharedElements/Navigators", ".navigator", Navigator.class), // DESIGN_OUTLINE("SharedElements/Outlines", ".outline", DesignOutline.class), // SUBFORM("SharedElements/Subforms", ".subform", Subform.class), // DESIGN_VIEW("Views", ".view", DesignView.class), // FILE_RESOURCE_WEB_CONTENT("WebContent", null, FileResourceWebContent.class), // XPAGE("XPages", null, XPage.class), // FILE_RESOURCE_HIDDEN("", null, FileResourceHidden.class), // // other design elements AGENT_DATA("Other/AgentData", ".agentdata", AgentData.class), // OTHER_DESIGN_ELEMENT("Other/Unknown", null, OtherDesignElement.class), // REPLICATION_FORMULA("Other/ReplicationFormulas", null, ReplicationFormula.class), // SAVED_QUERY("Other/SavedQueries", null, SavedQuery.class), // ; /** The folder where this element is stored */ private final String onDiskFolder_; /** The file extension of this element. e.g. "*.lss". If null, all files in the folder are considered as type of this design element */ private final String onDiskFileName_; /** class of the design element */ private final Class<? extends AbstractDesignBase> clazz_; private ODPMapping(final String onDiskFolder, final String onDiskFileName, final Class<? extends AbstractDesignBase> clazz) { onDiskFolder_ = onDiskFolder; onDiskFileName_ = onDiskFileName; clazz_ = clazz; } public static ODPMapping valueOf(final Class<? extends AbstractDesignBase> clazz) { for (ODPMapping mapping : values()) { if (mapping.getInstanceClass() == clazz) return mapping; } throw new IllegalArgumentException("Mapping not found for " + clazz.getName()); } public Class<? extends AbstractDesignBase> getInstanceClass() { return clazz_; } public String getFolder() { return onDiskFolder_; } public String getFileName() { return onDiskFileName_; } }