private Object doGetAdapter()

in eclipse/eclipse-ui/src/org/apache/sling/ide/eclipse/ui/nav/model/JcrNode.java [573:669]


	private Object doGetAdapter(Class adapter) {
	    if (adapter==ITabbedPropertySheetPageContributor.class) {
			return new ITabbedPropertySheetPageContributor() {

				@Override
				public String getContributorId() {
					return "org.eclipse.ui.navigator.ProjectExplorer";
				}
				
			};
		} else if (adapter==IPropertySource.class) {
			return null;//properties;
		} else if (adapter == IFile.class) {
			if (resource instanceof IFile) {
				return resource;
			} else {
				return null;
			}
		} else if ( adapter == IFolder.class) {
		    if ( resource instanceof IFolder ) {
		        return resource;
		    } else {
		        return null;
		    }
		} else if (adapter == IContributorResourceAdapter.class) {
			//if (resource==null) {
			//	return null;
			//}
			return new IContributorResourceAdapter() {
				
				@Override
				public IResource getAdaptedResource(IAdaptable adaptable) {
					if (!(adaptable instanceof JcrNode)) {
						return null;
					}
					JcrNode node = (JcrNode)adaptable;
					if (node.resource!=null) {
						return node.resource;
					} else {
						return node.underlying.file;
					}
//					return null;
				}
			};
		} else if (adapter == IResource.class) {
			if (resource!=null) {
				return resource;
			} else {
				return null;//underlying.file;
			}
		} else if (adapter == ResourceMapping.class) { 
			boolean t = true;
			if (!t) {
				return null;
			}
//			if (resource==null) {
//				return null;
//			}
			return new ResourceMapping() {
				
				@Override
				public ResourceTraversal[] getTraversals(ResourceMappingContext context,
						IProgressMonitor monitor) throws CoreException {
					if (resource!=null) {
						return new ResourceTraversal[] { new ResourceTraversal(new IResource[] { resource }, IResource.DEPTH_INFINITE, IResource.NONE) };
					} else {
						return new ResourceTraversal[] { new ResourceTraversal(new IResource[] { underlying.file }, IResource.DEPTH_INFINITE, IResource.NONE) };
					}
				}
				
				@Override
				public IProject[] getProjects() {
					if (resource!=null) {
						return new IProject[] {resource.getProject()};
					} else {
						return new IProject[] {underlying.file.getProject()};
					}
//					return null;
				}
				
				@Override
				public String getModelProviderId() {
					return "org.apache.sling.ide.eclipse.ui.nav.model.JcrNode.ResourceMapping";
				}
				
				@Override
				public Object getModelObject() {
					if (resource!=null) {
						return resource;
					} else {
						return underlying.file;
					}
				}
			};
		}
		return null;
	}