Search in sources :

Example 1 with PackageArtifact

use of org.whole.lang.artifacts.model.PackageArtifact in project whole by wholeplatform.

the class ArtifactsWorkspaceUtils method getArtifacts.

public static IEntity getArtifacts(IEntity artifact) {
    ArtifactsEntityFactory aef = ArtifactsEntityFactory.instance(RegistryConfigurations.RESOLVER);
    IEntity children = BindingManagerFactory.instance.createTuple();
    if (Matcher.match(ArtifactsEntityDescriptorEnum.Workspace, artifact)) {
        IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
        for (IProject project : workspaceRoot.getProjects()) {
            Project projectArtifact = aef.createProject();
            projectArtifact.setName(aef.createName(project.getName()));
            projectArtifact.setArtifacts(aef.createArtifacts(0));
            children.wAdd(projectArtifact);
        }
    } else {
        try {
            IBindingManager bindings = BindingManagerFactory.instance.createBindingManager();
            bindPath(artifact, bindings, false);
            IContainer container = (IContainer) (bindings.wIsSet("folder") ? bindings.wGetValue("folder") : bindings.wGetValue("project"));
            IJavaElement javaContainer = JavaCore.create(container);
            if (javaContainer == null || javaContainer.getElementType() == IJavaElement.JAVA_PROJECT) {
                for (IResource resource : container.members()) {
                    if (resource.getType() == IResource.FILE) {
                        appendFileArtifact(((IFile) resource).getName(), children);
                    } else {
                        FolderArtifact folderArtifact = aef.createFolderArtifact();
                        Metadata metadata = aef.createMetadata();
                        metadata.setAttributes(aef.createAttributes(aef.createAttribute(AttributeEnum.source)));
                        folderArtifact.setMetadata(metadata);
                        folderArtifact.setName(aef.createName(StringUtils.getFileName(resource.getName())));
                        folderArtifact.setArtifacts(aef.createArtifacts(0));
                        children.wAdd(folderArtifact);
                    }
                }
            } else {
                if (javaContainer.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT) {
                    IPackageFragmentRoot fragmentRoot = (IPackageFragmentRoot) javaContainer;
                    if (fragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
                        for (IJavaElement element : fragmentRoot.getChildren()) {
                            if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
                                if (element.getElementName() == IPackageFragment.DEFAULT_PACKAGE_NAME) {
                                    appendPackageFragmentChildren((IPackageFragment) element, children);
                                } else {
                                    PackageArtifact packageArtifact = aef.createPackageArtifact();
                                    packageArtifact.setName(aef.createName(StringUtils.getFileName(element.getElementName())));
                                    packageArtifact.setArtifacts(aef.createArtifacts(0));
                                    children.wAdd(packageArtifact);
                                }
                            }
                        }
                    }
                } else
                    // IJavaElement.PACKAGE_FRAGMENT
                    appendPackageFragmentChildren((IPackageFragment) javaContainer, children);
            }
        } catch (Exception e) {
        }
    }
    return children;
}
Also used : IJavaElement(org.eclipse.jdt.core.IJavaElement) IPackageFragment(org.eclipse.jdt.core.IPackageFragment) IEntity(org.whole.lang.model.IEntity) Metadata(org.whole.lang.artifacts.model.Metadata) FolderArtifact(org.whole.lang.artifacts.model.FolderArtifact) IProject(org.eclipse.core.resources.IProject) PackageArtifact(org.whole.lang.artifacts.model.PackageArtifact) CoreException(org.eclipse.core.runtime.CoreException) IPackageFragmentRoot(org.eclipse.jdt.core.IPackageFragmentRoot) ArtifactsEntityFactory(org.whole.lang.artifacts.factories.ArtifactsEntityFactory) Project(org.whole.lang.artifacts.model.Project) IProject(org.eclipse.core.resources.IProject) IWorkspaceRoot(org.eclipse.core.resources.IWorkspaceRoot) IBindingManager(org.whole.lang.bindings.IBindingManager) IContainer(org.eclipse.core.resources.IContainer) IResource(org.eclipse.core.resources.IResource)

Example 2 with PackageArtifact

use of org.whole.lang.artifacts.model.PackageArtifact in project whole by wholeplatform.

the class ArtifactsWorkspaceUtils method toArtifactsPath.

public static IEntity toArtifactsPath(IJavaElement fromJavaElement, IJavaElement toJavaElement, IEntity child) {
    ArtifactsEntityFactory aef = ArtifactsEntityFactory.instance(RegistryConfigurations.RESOLVER);
    IEntity entity;
    String name = toJavaElement.getElementName();
    switch(toJavaElement.getElementType()) {
        case IJavaElement.COMPILATION_UNIT:
            FileArtifact fileArtifact = aef.createFileArtifact();
            fileArtifact.setName(createFileName(name));
            entity = fileArtifact;
            break;
        case IJavaElement.PACKAGE_FRAGMENT:
            if (name == IPackageFragment.DEFAULT_PACKAGE_NAME)
                return fromJavaElement.equals(toJavaElement) ? child : toArtifactsPath(fromJavaElement, toJavaElement.getParent(), child);
            PackageArtifact packageArtifact = aef.createPackageArtifact();
            packageArtifact.setName(aef.createName(name));
            entity = packageArtifact;
            break;
        case IJavaElement.PACKAGE_FRAGMENT_ROOT:
            FolderArtifact folderArtifact = aef.createFolderArtifact();
            Metadata metadata = aef.createMetadata();
            metadata.setAttributes(aef.createAttributes(aef.createAttribute(AttributeEnum.source)));
            folderArtifact.setMetadata(metadata);
            folderArtifact.setName(aef.createName(name));
            entity = folderArtifact;
            break;
        case IJavaElement.JAVA_PROJECT:
            Project project = aef.createProject();
            project.setName(aef.createName(name));
            project.setNatures(aef.createNatures(aef.createNature("org.eclipse.jdt.core.javanature")));
            project.setArtifacts(aef.createArtifacts(0));
            entity = project;
            break;
        default:
        case IJavaElement.JAVA_MODEL:
            Workspace workspace = aef.createWorkspace();
            workspace.setProjects(aef.createProjects(0));
            entity = workspace;
            break;
    }
    boolean isWorkspace = Matcher.match(ArtifactsEntityDescriptorEnum.Workspace, entity);
    if (!EntityUtils.isNull(child))
        entity.wGet(isWorkspace ? ArtifactsFeatureDescriptorEnum.projects : ArtifactsFeatureDescriptorEnum.artifacts).wAdd(child);
    return fromJavaElement.equals(toJavaElement) ? entity : toArtifactsPath(fromJavaElement, toJavaElement.getParent(), entity);
}
Also used : ArtifactsEntityFactory(org.whole.lang.artifacts.factories.ArtifactsEntityFactory) Project(org.whole.lang.artifacts.model.Project) IProject(org.eclipse.core.resources.IProject) IEntity(org.whole.lang.model.IEntity) FileArtifact(org.whole.lang.artifacts.model.FileArtifact) Metadata(org.whole.lang.artifacts.model.Metadata) FolderArtifact(org.whole.lang.artifacts.model.FolderArtifact) PackageArtifact(org.whole.lang.artifacts.model.PackageArtifact) Workspace(org.whole.lang.artifacts.model.Workspace)

Aggregations

IProject (org.eclipse.core.resources.IProject)2 ArtifactsEntityFactory (org.whole.lang.artifacts.factories.ArtifactsEntityFactory)2 FolderArtifact (org.whole.lang.artifacts.model.FolderArtifact)2 Metadata (org.whole.lang.artifacts.model.Metadata)2 PackageArtifact (org.whole.lang.artifacts.model.PackageArtifact)2 Project (org.whole.lang.artifacts.model.Project)2 IEntity (org.whole.lang.model.IEntity)2 IContainer (org.eclipse.core.resources.IContainer)1 IResource (org.eclipse.core.resources.IResource)1 IWorkspaceRoot (org.eclipse.core.resources.IWorkspaceRoot)1 CoreException (org.eclipse.core.runtime.CoreException)1 IJavaElement (org.eclipse.jdt.core.IJavaElement)1 IPackageFragment (org.eclipse.jdt.core.IPackageFragment)1 IPackageFragmentRoot (org.eclipse.jdt.core.IPackageFragmentRoot)1 FileArtifact (org.whole.lang.artifacts.model.FileArtifact)1 Workspace (org.whole.lang.artifacts.model.Workspace)1 IBindingManager (org.whole.lang.bindings.IBindingManager)1