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);
}
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;
}
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;
}
}
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);
}
Aggregations