Search in sources :

Example 1 with Project

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

the class ArtifactsWorkspaceUtils method toArtifactsPath.

public static IEntity toArtifactsPath(IResource fromResource, IResource toResource, IEntity child) {
    ArtifactsEntityFactory aef = ArtifactsEntityFactory.instance(RegistryConfigurations.RESOLVER);
    IEntity entity;
    String name = toResource.getName();
    switch(toResource.getType()) {
        case IResource.FILE:
            FileArtifact fileArtifact = aef.createFileArtifact();
            fileArtifact.setName(createFileName(name));
            entity = fileArtifact;
            break;
        case IResource.FOLDER:
            FolderArtifact folderArtifact = aef.createFolderArtifact();
            folderArtifact.setName(aef.createName(name));
            folderArtifact.setArtifacts(aef.createArtifacts(0));
            entity = folderArtifact;
            break;
        case IResource.PROJECT:
            Project project = aef.createProject();
            project.setName(aef.createName(name));
            project.setArtifacts(aef.createArtifacts(0));
            entity = project;
            break;
        default:
        case IResource.ROOT:
            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 fromResource.equals(toResource) ? entity : toArtifactsPath(fromResource, toResource.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) FolderArtifact(org.whole.lang.artifacts.model.FolderArtifact) Workspace(org.whole.lang.artifacts.model.Workspace)

Example 2 with Project

use of org.whole.lang.artifacts.model.Project 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 3 with Project

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

the class ArtifactsUtils method moveArtifactsIntoWorkspace.

public static void moveArtifactsIntoWorkspace(IEntity artifacts, IBindingManager bm) {
    switch(artifacts.wGetEntityDescriptor().getOrdinal()) {
        case ArtifactsEntityDescriptorEnum.Workspace_ord:
            Projects projectsPoint = (Projects) bm.wGet("projectsPoint");
            if (projectsPoint == null)
                throw new IllegalArgumentException("projectsPoint is undefined");
            IEntityIterator<Project> projectIterator = IteratorFactory.childIterator();
            projectIterator.reset(((Workspace) artifacts).getProjects());
            for (Project project : projectIterator) {
                projectIterator.remove();
                projectsPoint.add(project);
            }
            break;
        case ArtifactsEntityDescriptorEnum.Artifacts_ord:
            Artifacts packagesPoint = (Artifacts) bm.wGet("packagesPoint");
            if (packagesPoint == null)
                throw new IllegalArgumentException("packagesPoint is undefined");
            IEntityIterator<Artifact> artifactIterator = IteratorFactory.childIterator();
            artifactIterator.reset(artifacts);
            for (Artifact artifact : artifactIterator) {
                artifactIterator.remove();
                packagesPoint.add(artifact);
            }
            break;
        case ArtifactsEntityDescriptorEnum.PackageArtifact_ord:
        case ArtifactsEntityDescriptorEnum.FolderArtifact_ord:
            packagesPoint = (Artifacts) bm.wGet("packagesPoint");
            if (packagesPoint == null)
                throw new IllegalArgumentException("packagesPoint is undefined");
            packagesPoint.add((Artifact) artifacts);
            break;
        case ArtifactsEntityDescriptorEnum.FileArtifact_ord:
            Artifacts packageArtifactsPoint = (Artifacts) bm.wGet("packageArtifactsPoint");
            if (packageArtifactsPoint == null)
                throw new IllegalArgumentException("packageArtifactsPoint is undefined");
            packageArtifactsPoint.add((FileArtifact) artifacts);
            break;
    }
}
Also used : Project(org.whole.lang.artifacts.model.Project) Artifacts(org.whole.lang.artifacts.model.Artifacts) Projects(org.whole.lang.artifacts.model.Projects) Artifact(org.whole.lang.artifacts.model.Artifact) FileArtifact(org.whole.lang.artifacts.model.FileArtifact) PackageArtifact(org.whole.lang.artifacts.model.PackageArtifact) FolderArtifact(org.whole.lang.artifacts.model.FolderArtifact) FileArtifact(org.whole.lang.artifacts.reflect.ArtifactsEntityDescriptorEnum.FileArtifact)

Example 4 with Project

use of org.whole.lang.artifacts.model.Project 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

FolderArtifact (org.whole.lang.artifacts.model.FolderArtifact)4 Project (org.whole.lang.artifacts.model.Project)4 IProject (org.eclipse.core.resources.IProject)3 ArtifactsEntityFactory (org.whole.lang.artifacts.factories.ArtifactsEntityFactory)3 FileArtifact (org.whole.lang.artifacts.model.FileArtifact)3 PackageArtifact (org.whole.lang.artifacts.model.PackageArtifact)3 IEntity (org.whole.lang.model.IEntity)3 Metadata (org.whole.lang.artifacts.model.Metadata)2 Workspace (org.whole.lang.artifacts.model.Workspace)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 Artifact (org.whole.lang.artifacts.model.Artifact)1 Artifacts (org.whole.lang.artifacts.model.Artifacts)1 Projects (org.whole.lang.artifacts.model.Projects)1 FileArtifact (org.whole.lang.artifacts.reflect.ArtifactsEntityDescriptorEnum.FileArtifact)1