|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.java.bridge; import java.util.*; import javax.jmi.reflect.RefObject; import javax.jmi.reflect.RefBaseObject; import javax.jmi.reflect.InvalidObjectException; import org.netbeans.api.mdr.events.*; import org.netbeans.modules.javacore.jmiimpl.javamodel.ResourceImpl; import org.openide.src.*; import org.netbeans.jmi.javamodel.Resource; import org.netbeans.jmi.javamodel.JavaClass; import org.netbeans.modules.javacore.jmiimpl.javamodel.JavaClassImpl; class TopClassesCollection extends ClassesCollection { private Resource resource; private SourceElementImpl sourceImpl; public TopClassesCollection(FeaturesCollection members, Resource resource, SourceElementImpl sourceImpl) { super (members); this.resource = resource; this.sourceImpl = sourceImpl; } public RefObject createFeature(RefObject parent, Element elem) { JavaClass res = members.createClass ((ClassElement) elem); return res; } public boolean isClassMember () { return false; } public List getFeatures () { members.repository.beginTrans(false); try { ((ResourceImpl) resource).getElementInfo(); // #46349 return resource.getClassifiers(); } finally { members.repository.endTrans(); } } public Element createElement(RefObject topClass) { return (ClassElement) members.model.createTopClass ((SourceElement) sourceImpl.getElement (), (JavaClass)topClass).getElement (); } protected void addMembers (Element[] items) throws SourceException { if (items.length == 0) return; members.repository.beginTrans (true); boolean failed = true; try { members.parentImpl.setClassPath(); List features = getFeatures (); for (int x = 0; x < items.length; x++) { features.add (createFeature (members.javaClass, items[x])); } failed = false; } catch (InvalidObjectException e) { members.parentImpl.throwIsInvalid (); } finally { members.repository.endTrans (failed); } } protected void setMembers (Element[] items) throws SourceException { members.repository.beginTrans (true); boolean failed = true; try { members.parentImpl.setClassPath(); List features = getFeatures (); features.clear (); for (int x = 0; x < items.length; x++) { features.add (createFeature (members.javaClass, items[x])); } failed = false; } catch (InvalidObjectException e) { members.parentImpl.throwIsInvalid (); } finally { members.repository.endTrans (failed); } } public ClassElement getClass(Identifier name) { String clsName = name.getName (); if (clsName == null) return null; members.repository.beginTrans (false); try { Iterator iter = resource.getClassifiers ().iterator (); while (iter.hasNext ()) { Object obj = iter.next (); if (!(obj instanceof JavaClass)) { continue; } JavaClass cls = (JavaClass) obj; String clsFullName = cls.getName(); String clsSimpleName = cls.getSimpleName(); if (clsName.equals (clsSimpleName)) { String fqn = name.getFullName (); if (!fqn.equals (clsSimpleName) && !fqn.equals (clsFullName)) return null; else return (ClassElement) cachedElement (cls); } // if } // while return null; } catch (InvalidObjectException e) { return null; } finally { members.repository.endTrans (false); } } // .......................................................................... static class TopClassesListener extends ObjectsCollection.FeaturesListener { TopClassesListener (ElementImpl impl) { super (impl); fireMembers = false; } public void connect () { if (REGISTER_LISTENER) { ((MDRChangeSource) javaElement).addListener (this); features = new ArrayList (); Iterator iter = ((Resource) javaElement).getClassifiers ().iterator(); while (iter.hasNext()) { Object obj = iter.next(); if (obj instanceof JavaClass) { features.add (obj); } } // while } } public ObjectsCollection getFeatureCollection (RefObject feature) { return ((SourceElementImpl) impl).topClasses; } protected boolean isWatchedAttribute (AttributeEvent ev) { return ev.getAttributeName ().equals ("classifiers"); // NOI18N } public Element cachedElement (RefObject f) { if (f instanceof JavaClass) { return ((SourceElementImpl) impl).topClasses.cachedElement (f); } else { return null; } } } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.