// Path: org.wso2.maven.general/src/main/java/org/wso2/maven/registry/beans/RegistryCollection.java
// public class RegistryCollection extends RegistryElement {
// 
//     private String directory;
// 
//     public String getDirectory() {
//         return directory;
//     }
// 
//     public void setDirectory(String directory) {
//         this.directory = directory;
//     }
// 
// }
// 
// Path: org.wso2.maven.general/src/main/java/org/wso2/maven/registry/beans/RegistryElement.java
// public abstract class RegistryElement {
// 
//     private String path;
// 
//     private List<RegistryProperty> properties = new ArrayList<RegistryProperty>();
// 
//     public void setPath(String path) {
//         this.path = path;
//     }
// 
//     public String getPath() {
//         return path;
//     }
// 
//     public List<RegistryProperty> getProperties() {
//         return Collections.unmodifiableList(properties);
//     }
// 
//     public void addProperty(RegistryProperty property) {
//         this.properties.add(property);
//     }
// 
//     public void removeProperty(RegistryProperty property) {
//         this.properties.remove(property);
//     }
// }
// 
// Path: org.wso2.maven.general/src/main/java/org/wso2/maven/registry/beans/RegistryItem.java
// public class RegistryItem extends RegistryElement {
// 
//     private String file;
//     private String mediaType;
// 
//     public void setFile(String file) {
//         this.file = file;
//     }
// 
//     public String getFile() {
//         return file;
//     }
// 
//     public String getMediaType() {
//         return mediaType;
//     }
// 
//     public void setMediaType(String mediaType) {
//         this.mediaType = mediaType;
//     }
// 
// }


import org.apache.axiom.om.OMElement;
import org.wso2.maven.registry.beans.RegistryCollection;
import org.wso2.maven.registry.beans.RegistryElement;
import org.wso2.maven.registry.beans.RegistryItem;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
    public List<RegistryArtifact> getAllESBArtifacts() {
        return Collections.unmodifiableList(registryArtifacts);
    }

    public OMElement getDocumentElement() {
        OMElement documentElement = getElement(ARTIFACTS, EMPTY_STRING);

        for (RegistryArtifact esbArtifact : registryArtifacts) {
            OMElement artifactElement = getElement(ARTIFACT, EMPTY_STRING);

            if (!esbArtifact.isAnonymous()) {
                addAttribute(artifactElement, NAME, esbArtifact.getName());
            }

            if (!esbArtifact.isAnonymous() && esbArtifact.getGroupId() != null) {
                addAttribute(artifactElement, GROUP_ID, esbArtifact.getGroupId());
            }

            if (!esbArtifact.isAnonymous() && esbArtifact.getVersion() != null) {
                addAttribute(artifactElement, VERSION, esbArtifact.getVersion());
            }

            if (esbArtifact.getType() != null) {
                addAttribute(artifactElement, TYPE, esbArtifact.getType());
            }

            if (esbArtifact.getServerRole() != null) {
                addAttribute(artifactElement, SERVER_ROLE, esbArtifact.getServerRole());
            }

// Path: org.wso2.maven.general/src/main/java/org/wso2/maven/registry/beans/RegistryCollection.java
// public class RegistryCollection extends RegistryElement {
// 
//     private String directory;
// 
//     public String getDirectory() {
//         return directory;
//     }
// 
//     public void setDirectory(String directory) {
//         this.directory = directory;
//     }
// 
// }
// 
// Path: org.wso2.maven.general/src/main/java/org/wso2/maven/registry/beans/RegistryElement.java
// public abstract class RegistryElement {
// 
//     private String path;
// 
//     private List<RegistryProperty> properties = new ArrayList<RegistryProperty>();
// 
//     public void setPath(String path) {
//         this.path = path;
//     }
// 
//     public String getPath() {
//         return path;
//     }
// 
//     public List<RegistryProperty> getProperties() {
//         return Collections.unmodifiableList(properties);
//     }
// 
//     public void addProperty(RegistryProperty property) {
//         this.properties.add(property);
//     }
// 
//     public void removeProperty(RegistryProperty property) {
//         this.properties.remove(property);
//     }
// }
// 
// Path: org.wso2.maven.general/src/main/java/org/wso2/maven/registry/beans/RegistryItem.java
// public class RegistryItem extends RegistryElement {
// 
//     private String file;
//     private String mediaType;
// 
//     public void setFile(String file) {
//         this.file = file;
//     }
// 
//     public String getFile() {
//         return file;
//     }
// 
//     public String getMediaType() {
//         return mediaType;
//     }
// 
//     public void setMediaType(String mediaType) {
//         this.mediaType = mediaType;
//     }
// 
// }


// Path: org.wso2.maven.general/src/main/java/org/wso2/maven/registry/GeneralProjectArtifact.java
import org.apache.axiom.om.OMElement;
import org.wso2.maven.registry.beans.RegistryCollection;
import org.wso2.maven.registry.beans.RegistryElement;
import org.wso2.maven.registry.beans.RegistryItem;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

    public List<RegistryArtifact> getAllESBArtifacts() {
        return Collections.unmodifiableList(registryArtifacts);
    }

    public OMElement getDocumentElement() {
        OMElement documentElement = getElement(ARTIFACTS, EMPTY_STRING);

        for (RegistryArtifact esbArtifact : registryArtifacts) {
            OMElement artifactElement = getElement(ARTIFACT, EMPTY_STRING);

            if (!esbArtifact.isAnonymous()) {
                addAttribute(artifactElement, NAME, esbArtifact.getName());
            }

            if (!esbArtifact.isAnonymous() && esbArtifact.getGroupId() != null) {
                addAttribute(artifactElement, GROUP_ID, esbArtifact.getGroupId());
            }

            if (!esbArtifact.isAnonymous() && esbArtifact.getVersion() != null) {
                addAttribute(artifactElement, VERSION, esbArtifact.getVersion());
            }

            if (esbArtifact.getType() != null) {
                addAttribute(artifactElement, TYPE, esbArtifact.getType());
            }

            if (esbArtifact.getServerRole() != null) {
                addAttribute(artifactElement, SERVER_ROLE, esbArtifact.getServerRole());
            }

            for (RegistryElement item : esbArtifact.getAllRegistryItems()) {