Changeset 85b4650e22de85722d0e932da31e0104e8a88327
- Timestamp:
- 06/28/09 23:36:49 (8 months ago)
- git-author:
- mb0 <mb0@mb0.org> / 2009-06-05T02:52:06Z+0200
- Parents:
- 369d8ecb6239f8f96d0abe435a0b50d8fbaabb9a
- Children:
- c598ac61d680bc607baa6ff4a8fbb9447b6cf4ed
- git-committer:
- mb0 <mb0@mb0.org> / 2009-06-28T23:36:49Z+0200
- Files:
-
- 3 added
- 22 modified
-
org.axdt.axdoc.model/model/AXDoc.ecore (modified) (3 diffs)
-
org.axdt.axdoc.model/src/org/axdt/axdoc/model/AXDocPackage.java (modified) (4 diffs)
-
org.axdt.axdoc.model/src/org/axdt/axdoc/model/AXEntry.java (modified) (2 diffs)
-
org.axdt.axdoc.model/src/org/axdt/axdoc/model/AXIndex.java (modified) (1 diff)
-
org.axdt.axdoc.model/src/org/axdt/axdoc/model/AXIndexNode.java (modified) (1 diff)
-
org.axdt.axdoc.model/src/org/axdt/axdoc/model/impl/AXDocPackageImpl.java (modified) (5 diffs)
-
org.axdt.axdoc.model/src/org/axdt/axdoc/model/impl/AXEntryImpl.java (modified) (10 diffs)
-
org.axdt.axdoc.model/src/org/axdt/axdoc/model/impl/AXIndexImpl.java (modified) (1 diff)
-
org.axdt.axdoc.model/src/org/axdt/axdoc/model/impl/AXIndexNodeImpl.java (modified) (2 diffs)
-
org.axdt.axdoc.test/src/org/axdt/axdoc/model/AXEntryTest.java (modified) (2 diffs)
-
org.axdt.axdoc.test/src/org/axdt/axdoc/model/AXIndexNodeTest.java (modified) (2 diffs)
-
org.axdt.axdoc.test/src/org/axdt/axdoc/model/AXIndexTest.java (modified) (3 diffs)
-
org.axdt.axdoc.test/src/org/axdt/axdoc/model/util/AXDocUtilTest.java (modified) (1 diff)
-
org.axdt.axdoc.test/src/org/axdt/axdoc/util/Index0rTest.java (modified) (3 diffs)
-
org.axdt.axdoc/META-INF/MANIFEST.MF (modified) (1 diff)
-
org.axdt.axdoc/plugin.xml (modified) (1 diff)
-
org.axdt.axdoc/src/org/axdt/axdoc/AXDocPlugin.java (modified) (2 diffs)
-
org.axdt.axdoc/src/org/axdt/axdoc/preferences/AXDocPreferencePage.java (modified) (2 diffs)
-
org.axdt.axdoc/src/org/axdt/axdoc/preferences/AXDocPreferences.java (modified) (4 diffs)
-
org.axdt.axdoc/src/org/axdt/axdoc/preferences/DocTableField.java (added)
-
org.axdt.axdoc/src/org/axdt/axdoc/preferences/DocTableFieldEditor.java (added)
-
org.axdt.axdoc/src/org/axdt/axdoc/util/AXDocParser.java (modified) (5 diffs)
-
org.axdt.axdoc/src/org/axdt/axdoc/util/Index0r.java (modified) (4 diffs)
-
org.axdt.common/src/org/axdt/common/AxdtPlugin.java (modified) (1 diff)
-
org.axdt.help/.gitignore (added)
Legend:
- Unmodified
- Added
- Removed
-
org.axdt.axdoc.model/model/AXDoc.ecore
r87f02d1 r85b4650 43 43 <eParameters name="part" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> 44 44 </eOperations> 45 <eOperations name="getOrCreate Package" eType="#//AXPackage"/>45 <eOperations name="getOrCreateReference" eType="#//AXPackage"/> 46 46 <eStructuralFeatures xsi:type="ecore:EReference" name="reference" eType="#//AXPackage"/> 47 47 <eStructuralFeatures xsi:type="ecore:EAttribute" name="level" eType="#//AXLevel" … … 74 74 <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//AXIndexNode" 75 75 transient="true" eOpposite="#//AXIndexNode/entries"/> 76 <eStructuralFeatures xsi:type="ecore:EReference" name="reference" eType="#//AXNode" 77 transient="true"/> 76 78 </eClassifiers> 77 79 <eClassifiers xsi:type="ecore:EClass" name="AXIndexNode" abstract="true"> … … 89 91 <eParameters name="type" eType="#//AXEntryType"/> 90 92 </eOperations> 93 <eOperations name="getOrCreateReference" eType="#//AXNode"/> 91 94 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> 92 95 <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1" -
org.axdt.axdoc.model/src/org/axdt/axdoc/model/AXDocPackage.java
r79dd699 r85b4650 665 665 666 666 /** 667 * The feature id for the '<em><b>Reference</b></em>' reference. 668 * <!-- begin-user-doc --> 669 * <!-- end-user-doc --> 670 * @generated 671 * @ordered 672 */ 673 int AX_ENTRY__REFERENCE = AX_INDEX_NODE_FEATURE_COUNT + 2; 674 675 /** 667 676 * The number of structural features of the '<em>AX Entry</em>' class. 668 677 * <!-- begin-user-doc --> … … 671 680 * @ordered 672 681 */ 673 int AX_ENTRY_FEATURE_COUNT = AX_INDEX_NODE_FEATURE_COUNT + 2;682 int AX_ENTRY_FEATURE_COUNT = AX_INDEX_NODE_FEATURE_COUNT + 3; 674 683 675 684 /** … … 970 979 */ 971 980 EReference getAXEntry_Parent(); 981 982 /** 983 * Returns the meta object for the reference '{@link org.axdt.axdoc.model.AXEntry#getReference <em>Reference</em>}'. 984 * <!-- begin-user-doc --> 985 * <!-- end-user-doc --> 986 * @return the meta object for the reference '<em>Reference</em>'. 987 * @see org.axdt.axdoc.model.AXEntry#getReference() 988 * @see #getAXEntry() 989 * @generated 990 */ 991 EReference getAXEntry_Reference(); 972 992 973 993 /** … … 1313 1333 1314 1334 /** 1335 * The meta object literal for the '<em><b>Reference</b></em>' reference feature. 1336 * <!-- begin-user-doc --> 1337 * <!-- end-user-doc --> 1338 * @generated 1339 */ 1340 EReference AX_ENTRY__REFERENCE = eINSTANCE.getAXEntry_Reference(); 1341 1342 /** 1315 1343 * The meta object literal for the '{@link org.axdt.axdoc.model.impl.AXIndexNodeImpl <em>AX Index Node</em>}' class. 1316 1344 * <!-- begin-user-doc --> -
org.axdt.axdoc.model/src/org/axdt/axdoc/model/AXEntry.java
r79dd699 r85b4650 17 17 * <li>{@link org.axdt.axdoc.model.AXEntry#getType <em>Type</em>}</li> 18 18 * <li>{@link org.axdt.axdoc.model.AXEntry#getParent <em>Parent</em>}</li> 19 * <li>{@link org.axdt.axdoc.model.AXEntry#getReference <em>Reference</em>}</li> 19 20 * </ul> 20 21 * </p> … … 82 83 void setParent(AXIndexNode value); 83 84 85 /** 86 * Returns the value of the '<em><b>Reference</b></em>' reference. 87 * <!-- begin-user-doc --> 88 * <p> 89 * If the meaning of the '<em>Reference</em>' reference isn't clear, 90 * there really should be more of a description here... 91 * </p> 92 * <!-- end-user-doc --> 93 * @return the value of the '<em>Reference</em>' reference. 94 * @see #setReference(AXNode) 95 * @see org.axdt.axdoc.model.AXDocPackage#getAXEntry_Reference() 96 * @model transient="true" 97 * @generated 98 */ 99 AXNode getReference(); 100 101 /** 102 * Sets the value of the '{@link org.axdt.axdoc.model.AXEntry#getReference <em>Reference</em>}' reference. 103 * <!-- begin-user-doc --> 104 * <!-- end-user-doc --> 105 * @param value the new value of the '<em>Reference</em>' reference. 106 * @see #getReference() 107 * @generated 108 */ 109 void setReference(AXNode value); 110 84 111 } // AXEntry -
org.axdt.axdoc.model/src/org/axdt/axdoc/model/AXIndex.java
r87f02d1 r85b4650 153 153 * @generated 154 154 */ 155 AXPackage getOrCreate Package();155 AXPackage getOrCreateReference(); 156 156 157 157 } // AXIndex -
org.axdt.axdoc.model/src/org/axdt/axdoc/model/AXIndexNode.java
r79dd699 r85b4650 144 144 AXEntry createEntry(String part, AXEntryType type); 145 145 146 /** 147 * <!-- begin-user-doc --> 148 * <!-- end-user-doc --> 149 * @model kind="operation" 150 * @generated 151 */ 152 AXNode getOrCreateReference(); 153 146 154 } // AXIndexNode -
org.axdt.axdoc.model/src/org/axdt/axdoc/model/impl/AXDocPackageImpl.java
r87f02d1 r85b4650 423 423 * @generated 424 424 */ 425 public EReference getAXEntry_Reference() { 426 return (EReference) axEntryEClass.getEStructuralFeatures().get(2); 427 } 428 429 /** 430 * <!-- begin-user-doc --> 431 * <!-- end-user-doc --> 432 * @generated 433 */ 425 434 public EClass getAXIndexNode() { 426 435 return axIndexNodeEClass; … … 572 581 createEAttribute(axEntryEClass, AX_ENTRY__TYPE); 573 582 createEReference(axEntryEClass, AX_ENTRY__PARENT); 583 createEReference(axEntryEClass, AX_ENTRY__REFERENCE); 574 584 575 585 axIndexNodeEClass = createEClass(AX_INDEX_NODE); … … 713 723 IS_ORDERED); 714 724 715 addEOperation(axIndexEClass, this.getAXPackage(), "getOrCreatePackage",716 0, 1, IS_UNIQUE, IS_ORDERED);725 addEOperation(axIndexEClass, this.getAXPackage(), 726 "getOrCreateReference", 0, 1, IS_UNIQUE, IS_ORDERED); 717 727 718 728 initEClass(axRootEClass, AXRoot.class, "AXRoot", !IS_ABSTRACT, … … 751 761 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, 752 762 IS_ORDERED); 763 initEReference(getAXEntry_Reference(), this.getAXNode(), null, 764 "reference", null, 0, 1, AXEntry.class, IS_TRANSIENT, 765 !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, 766 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 753 767 754 768 initEClass(axIndexNodeEClass, AXIndexNode.class, "AXIndexNode", … … 799 813 IS_ORDERED); 800 814 815 addEOperation(axIndexNodeEClass, this.getAXNode(), 816 "getOrCreateReference", 0, 1, IS_UNIQUE, IS_ORDERED); 817 801 818 // Initialize enums and add enum literals 802 819 initEEnum(axLevelEEnum, AXLevel.class, "AXLevel"); -
org.axdt.axdoc.model/src/org/axdt/axdoc/model/impl/AXEntryImpl.java
r79dd699 r85b4650 9 9 import java.util.Collection; 10 10 11 import org.axdt.axdoc.model.AXDocFactory; 11 12 import org.axdt.axdoc.model.AXDocPackage; 12 13 import org.axdt.axdoc.model.AXEntry; … … 14 15 import org.axdt.axdoc.model.AXIndex; 15 16 import org.axdt.axdoc.model.AXIndexNode; 17 import org.axdt.axdoc.model.AXMember; 18 import org.axdt.axdoc.model.AXMemberHolder; 19 import org.axdt.axdoc.model.AXNode; 20 import org.axdt.axdoc.model.AXPackage; 16 21 import org.axdt.axdoc.model.AXRoot; 22 import org.axdt.axdoc.model.AXType; 17 23 import org.eclipse.emf.common.notify.Notification; 18 24 import org.eclipse.emf.common.notify.NotificationChain; … … 32 38 * <li>{@link org.axdt.axdoc.model.impl.AXEntryImpl#getType <em>Type</em>}</li> 33 39 * <li>{@link org.axdt.axdoc.model.impl.AXEntryImpl#getParent <em>Parent</em>}</li> 40 * <li>{@link org.axdt.axdoc.model.impl.AXEntryImpl#getReference <em>Reference</em>}</li> 34 41 * </ul> 35 42 * </p> … … 57 64 */ 58 65 protected AXEntryType type = TYPE_EDEFAULT; 66 67 /** 68 * The cached value of the '{@link #getReference() <em>Reference</em>}' reference. 69 * <!-- begin-user-doc --> 70 * <!-- end-user-doc --> 71 * @see #getReference() 72 * @generated 73 * @ordered 74 */ 75 protected AXNode reference; 59 76 60 77 /** … … 153 170 * @generated 154 171 */ 172 public AXNode getReference() { 173 if (reference != null && reference.eIsProxy()) { 174 InternalEObject oldReference = (InternalEObject) reference; 175 reference = (AXNode) eResolveProxy(oldReference); 176 if (reference != oldReference) { 177 if (eNotificationRequired()) 178 eNotify(new ENotificationImpl(this, Notification.RESOLVE, 179 AXDocPackage.AX_ENTRY__REFERENCE, oldReference, 180 reference)); 181 } 182 } 183 return reference; 184 } 185 186 /** 187 * <!-- begin-user-doc --> 188 * <!-- end-user-doc --> 189 * @generated 190 */ 191 public AXNode basicGetReference() { 192 return reference; 193 } 194 195 /** 196 * <!-- begin-user-doc --> 197 * <!-- end-user-doc --> 198 * @generated 199 */ 200 public void setReference(AXNode newReference) { 201 AXNode oldReference = reference; 202 reference = newReference; 203 if (eNotificationRequired()) 204 eNotify(new ENotificationImpl(this, Notification.SET, 205 AXDocPackage.AX_ENTRY__REFERENCE, oldReference, reference)); 206 } 207 208 /** 209 * <!-- begin-user-doc --> 210 * <!-- end-user-doc --> 211 * @generated 212 */ 155 213 @SuppressWarnings("unchecked") 156 214 @Override … … 226 284 case AXDocPackage.AX_ENTRY__PARENT: 227 285 return getParent(); 286 case AXDocPackage.AX_ENTRY__REFERENCE: 287 if (resolve) 288 return getReference(); 289 return basicGetReference(); 228 290 } 229 291 return eDynamicGet(featureID, resolve, coreType); … … 252 314 setParent((AXIndexNode) newValue); 253 315 return; 316 case AXDocPackage.AX_ENTRY__REFERENCE: 317 setReference((AXNode) newValue); 318 return; 254 319 } 255 320 eDynamicSet(featureID, newValue); … … 275 340 case AXDocPackage.AX_ENTRY__PARENT: 276 341 setParent((AXIndexNode) null); 342 return; 343 case AXDocPackage.AX_ENTRY__REFERENCE: 344 setReference((AXNode) null); 277 345 return; 278 346 } … … 301 369 case AXDocPackage.AX_ENTRY__PARENT: 302 370 return getParent() != null; 371 case AXDocPackage.AX_ENTRY__REFERENCE: 372 return reference != null; 303 373 } 304 374 return eDynamicIsSet(featureID); … … 366 436 return id; 367 437 } 438 439 /** 440 * <!-- begin-user-doc --> 441 * <!-- end-user-doc --> 442 */ 443 public AXNode getOrCreateReference() { 444 AXNode node = getReference(); 445 // if transient reference is not yet set .. 446 if (node == null && getName() != null && getType() != null) { 447 // lets try to find it first 448 AXIndexNode parent = getParent(); 449 // we need a parent ! 450 if (parent == null) return null; 451 // lets work down the index tree and create all needed references 452 AXNode parentRef = parent.getOrCreateReference(); 453 // parent ref does not exist and cannot be created 454 if (parentRef == null) return null; 455 if (getType().isMember()) { 456 // should never happen 457 if (!(parentRef instanceof AXMemberHolder)) return null; 458 AXMemberHolder holder = (AXMemberHolder) parentRef; 459 AXMember result = null; 460 for (AXMember member:holder.getMembers()) { 461 if (getName().equals(member.getName())) { 462 result = member; 463 break; 464 } 465 } 466 // none found type. lets create one 467 if (result == null) { 468 // none found type. lets create one 469 result = AXDocFactory.eINSTANCE.createAXMember(); 470 result.setName(getName()); 471 if (getType().equals(AXEntryType.METHOD)) 472 result.setFunction(true); 473 else if (getType().equals(AXEntryType.CONSTRUCTOR)) 474 result.setConst(true); 475 else if (getType().equals(AXEntryType.PROPERTY)) 476 result.setVar(true); 477 holder.getMembers().add(result); 478 } 479 node = result; 480 } else if (getType().isType()) { 481 // we need a package to add types 482 // XXX: think about private classes in source indexes 483 if (!(parentRef instanceof AXPackage)) return null; 484 AXPackage pack = (AXPackage) parentRef; 485 AXType result = null; 486 for (AXType type:pack.getTypes()) { 487 if (getName().equals(type.getName())) { 488 result = type; 489 break; 490 } 491 } 492 if (result == null) { 493 // none found type. lets create one 494 result = AXDocFactory.eINSTANCE.createAXType(); 495 result.setName(getName()); 496 if (getType().equals(AXEntryType.INTERFACE)) { 497 result.setInterface(true); 498 } 499 pack.getTypes().add(result); 500 } 501 node = result; 502 } 503 setReference(node); 504 } 505 return node; 506 } 368 507 } //AXEntryImpl -
org.axdt.axdoc.model/src/org/axdt/axdoc/model/impl/AXIndexImpl.java
r87f02d1 r85b4650 513 513 * <!-- end-user-doc --> 514 514 */ 515 public AXPackage getOrCreate Package() {515 public AXPackage getOrCreateReference() { 516 516 AXPackage pack = getReference(); 517 if (pack == null ) {517 if (pack == null && eResource() != null) { 518 518 pack = AXDocFactory.eINSTANCE.createAXPackage(); 519 519 pack.setName(getName()); -
org.axdt.axdoc.model/src/org/axdt/axdoc/model/impl/AXIndexNodeImpl.java
r79dd699 r85b4650 14 14 import org.axdt.axdoc.model.AXEntryType; 15 15 import org.axdt.axdoc.model.AXIndexNode; 16 import org.axdt.axdoc.model.AXNode; 16 17 import org.axdt.axdoc.model.AXRoot; 17 18 import org.eclipse.emf.common.notify.Notification; … … 251 252 * <!-- begin-user-doc --> 252 253 * <!-- end-user-doc --> 254 */ 255 public abstract AXNode getOrCreateReference(); 256 257 /** 258 * <!-- begin-user-doc --> 259 * <!-- end-user-doc --> 253 260 * @generated 254 261 */ -
org.axdt.axdoc.test/src/org/axdt/axdoc/model/AXEntryTest.java
r79dd699 r85b4650 8 8 9 9 import junit.textui.TestRunner; 10 11 import org.axdt.axdoc.model.util.AXUtil; 10 12 11 13 /** … … 88 90 assertSame(root, getFixture().getRoot()); 89 91 } 92 93 @Override 94 public void testGetOrCreateReference() { 95 // if null not enough info provided 96 assertNull(getFixture().getOrCreateReference()); 97 getFixture().setName("Array"); 98 // still needs entry type 99 assertNull(getFixture().getOrCreateReference()); 100 getFixture().setType(AXEntryType.CLASS); 101 // still need package 102 assertNull(getFixture().getOrCreateReference()); 103 AXRoot root = AXUtil.createRoot("test", "file:/tmp/axdoc.entryTest/asdoc", "file:/tmp/axdoc.entryTest/resources"); 104 root.getEntries().add(getFixture()); 105 AXNode ref = getFixture().getOrCreateReference(); 106 assertNotNull(ref); 107 assertTrue(ref instanceof AXType); 108 AXType type = (AXType) ref; 109 assertFalse(type.isInterface()); 110 assertEquals("Array", type.getName()); 111 assertSame(type, getFixture().getOrCreateReference()); 112 113 AXEntry entry = getFixture().createEntry("toString", AXEntryType.METHOD); 114 ref = entry.getOrCreateReference(); 115 assertNotNull(ref); 116 assertTrue(ref instanceof AXMember); 117 AXMember member = (AXMember) ref; 118 assertTrue(member.isFunction()); 119 assertEquals("toString", member.getName()); 120 assertSame(member, entry.getOrCreateReference()); 121 } 90 122 } //AXEntryTest -
org.axdt.axdoc.test/src/org/axdt/axdoc/model/AXIndexNodeTest.java
r79dd699 r85b4650 30 30 * <li>{@link org.axdt.axdoc.model.AXIndexNode#localEntry(java.lang.String, boolean) <em>Local Entry</em>}</li> 31 31 * <li>{@link org.axdt.axdoc.model.AXIndexNode#createEntry(java.lang.String, org.axdt.axdoc.model.AXEntryType) <em>Create Entry</em>}</li> 32 * <li>{@link org.axdt.axdoc.model.AXIndexNode#getOrCreateReference() <em>Get Or Create Reference</em>}</li> 32 33 * </ul> 33 34 * </p> … … 185 186 } 186 187 188 /** 189 * Tests the '{@link org.axdt.axdoc.model.AXIndexNode#getOrCreateReference() <em>Get Or Create Reference</em>}' operation. 190 * <!-- begin-user-doc --> 191 * <!-- end-user-doc --> 192 * @see org.axdt.axdoc.model.AXIndexNode#getOrCreateReference() 193 */ 194 public void testGetOrCreateReference() { 195 // should be tested in concrete implementations 196 } 197 187 198 } //AXIndexNodeTest -
org.axdt.axdoc.test/src/org/axdt/axdoc/model/AXIndexTest.java
r87f02d1 r85b4650 8 8 9 9 import junit.textui.TestRunner; 10 11 import org.axdt.axdoc.model.util.AXUtil; 12 import org.eclipse.emf.ecore.resource.Resource; 10 13 11 14 /** … … 18 21 * <li>{@link org.axdt.axdoc.model.AXIndex#localIndex(java.lang.String) <em>Local Index</em>}</li> 19 22 * <li>{@link org.axdt.axdoc.model.AXIndex#createIndex(java.lang.String) <em>Create Index</em>}</li> 20 * <li>{@link org.axdt.axdoc.model.AXIndex#getOrCreate Package() <em>Get Or Create Package</em>}</li>23 * <li>{@link org.axdt.axdoc.model.AXIndex#getOrCreateReference() <em>Get Or Create Reference</em>}</li> 21 24 * </ul> 22 25 * </p> … … 184 187 185 188 /** 186 * Tests the '{@link org.axdt.axdoc.model.AXIndex#getOrCreatePackage() <em>Get Or Create Package</em>}' operation. 187 * <!-- begin-user-doc --> 188 * <!-- end-user-doc --> 189 * @see org.axdt.axdoc.model.AXIndex#getOrCreatePackage() 190 */ 191 public void testGetOrCreatePackage() { 192 } 189 * Tests the '{@link org.axdt.axdoc.model.AXIndex#getOrCreateReference() <em>Get Or Create Reference</em>}' operation. 190 * <!-- begin-user-doc --> 191 * <!-- end-user-doc --> 192 * @see org.axdt.axdoc.model.AXIndex#getOrCreateReference() 193 */ 194 public void testGetOrCreateReference() { 195 getFixture().setName("org"); 196 AXPackage reference = getFixture().getOrCreateReference(); 197 // needs resource set 198 assertNull(reference); 199 Resource resource = AXUtil.getResource("test"); 200 resource.getContents().add(getFixture()); 201 reference = getFixture().getOrCreateReference(); 202 assertNotNull(reference); 203 assertEquals("org", reference.getName()); 204 assertEquals(0, reference.getTypes().size()); 205 assertEquals(0, reference.getMembers().size()); 206 // watch out asdoc is a list ! 207 assertEquals(0, reference.getAsdoc().size()); 208 } 209 193 210 } //AXIndexTest -
org.axdt.axdoc.test/src/org/axdt/axdoc/model/util/AXDocUtilTest.java
r79dd699 r85b4650 9 9 import org.axdt.axdoc.model.AXPackage; 10 10 import org.axdt.axdoc.model.AXRoot; 11 import org.axdt.axdoc.model.util.AXUtil;12 11 import org.eclipse.emf.ecore.resource.Resource; 13 12 -
org.axdt.axdoc.test/src/org/axdt/axdoc/util/Index0rTest.java
r87f02d1 r85b4650 1 1 package org.axdt.axdoc.util; 2 3 import junit.framework.TestCase; 2 4 3 5 import org.axdt.axdoc.TestConstants; … … 7 9 import org.axdt.axdoc.model.AXRoot; 8 10 import org.axdt.axdoc.model.AXRootType; 9 import org.axdt.axdoc.util.Index0r; 10 11 import junit.framework.TestCase; 11 import org.eclipse.emf.common.util.URI; 12 12 13 13 public class Index0rTest extends TestCase implements TestConstants { … … 22 22 assertEquals(2,"::test".split("::").length); 23 23 assertEquals("test::".length()-2,"test::".indexOf("::")); 24 Index0r index = new Index0r(){}; 24 25 // platform urls are only supported with active workspace 26 final URI customBaseUrl = URI.createURI("file:/tmp/axdttest/"+Long.toHexString(System.currentTimeMillis())); 27 Index0r index = new Index0r(){ 28 @Override 29 protected URI createBaseUri() { 30 return customBaseUrl; 31 } 32 }; 25 33 String pathUrl = dataFolder.concat("/asdoc/"); 26 34 AXRoot root = index.addRoot("langref", pathUrl, AXRootType.ASDOC); 27 assertEquals( "platform:/meta/org.axdt.axdoc/"+Integer.toHexString(pathUrl.hashCode())+"/root-index.axdoc", root.eResource().getURI().toString());35 assertEquals(customBaseUrl+"/"+Integer.toHexString(pathUrl.hashCode())+"/root-index.axdoc", root.eResource().getURI().toString()); 28 36 index.initialize(root, AXLevel.PACKAGE); 29 37 assertNotNull(root); -
org.axdt.axdoc/META-INF/MANIFEST.MF
r87f02d1 r85b4650 10 10 org.axdt.common, 11 11 org.eclipse.core.resources, 12 org.axdt.axdoc.model 12 org.axdt.axdoc.model, 13 org.eclipse.debug.core 13 14 Eclipse-LazyStart: true 14 15 Bundle-Activator: org.axdt.axdoc.AXDocPlugin -
org.axdt.axdoc/plugin.xml
r87f02d1 r85b4650 7 7 class="org.axdt.axdoc.preferences.AXDocPreferencePage" 8 8 category="org.axdt.as3.preferences" 9 id="org.axdt.axdoc.prefer nces"9 id="org.axdt.axdoc.preferences" 10 10 name="AXDoc"> 11 11 </page> 12 12 </extension> 13 <extension 14 point="org.eclipse.core.runtime.preferences"> 15 <initializer 16 class="org.axdt.axdoc.preferences.AXDocPreferences"> 17 </initializer> 18 </extension> 13 19 </plugin> -
org.axdt.axdoc/src/org/axdt/axdoc/AXDocPlugin.java
r87f02d1 r85b4650 4 4 import java.net.URL; 5 5 6 import org.axdt.axdoc.model.AXLevel;7 import org.axdt.axdoc.model.AXRoot;8 import org.axdt.axdoc.model.AXRootType;9 import org.axdt.axdoc.preferences.AXDocPreferences;10 import org.axdt.axdoc.util.Index0r;11 6 import org.eclipse.core.runtime.FileLocator; 12 7 import org.eclipse.core.runtime.Path; … … 54 49 super.start(context); 55 50 plugin = this; 56 try {57 initializeIndex0r();58 } catch (Exception e) {59 log("could not initialize indexer", e);60 }61 }62 63 protected void initializeIndex0r() {64 Index0r result = Index0r.getInstance();65 // load configured indexes66 String pathString = AXDocPreferences.getLangRefPathString();67 AXRoot root = result.addRoot("langref", pathString, AXRootType.ASDOC);68 result.initialize(root, AXLevel.PACKAGE);69 51 } 70 52 -
org.axdt.axdoc/src/org/axdt/axdoc/preferences/AXDocPreferencePage.java
r87f02d1 r85b4650 1 1 package org.axdt.axdoc.preferences; 2 2 3 import org.axdt.axdoc.util.Index0r; 3 4 import org.axdt.preferences.AbstractPreferencePage; 4 5 … … 7 8 super(AXDocPreferences.getInstance()); 8 9 } 10 11 @Override 12 protected void performApply() { 13 super.performApply(); 14 // if changed reparse 15 AXDocPreferences.checkAXDocPaths(Index0r.getInstance()); 16 } 9 17 } -
org.axdt.axdoc/src/org/axdt/axdoc/preferences/AXDocPreferences.java
r87f02d1 r85b4650 2 2 3 3 import org.axdt.axdoc.AXDocPlugin; 4 import org.axdt.axdoc.model.AXLevel; 5 import org.axdt.axdoc.model.AXRoot; 6 import org.axdt.axdoc.model.AXRootType; 7 import org.axdt.axdoc.preferences.DocTableFieldEditor.DocItem; 8 import org.axdt.axdoc.util.Index0r; 4 9 import org.axdt.preferences.AbstractPreferences; 5 10 import org.eclipse.jface.preference.IPreferenceStore; … … 16 21 17 22 public AXDocPreferences() { 18 super("Preferences for ActionScript 3 languagesupport");23 super("Preferences for asdoc support"); 19 24 instance = this; 20 25 } … … 27 32 @Override 28 33 public void initializeFieldSpecs() { 29 add( LANGREF_PATH, "&Langref path", "file:/home/mb0/workspace/axdt/org.axdt.axdoc.test/data/asdoc");34 add(new DocTableField(LANGREF_PATH, "Asdoc uris", "file:/home/mb0/workspace/axdt/org.axdt.axdoc.test/data/asdoc")); 30 35 } 31 36 … … 34 39 return store.getString(LANGREF_PATH); 35 40 } 41 public static void checkAXDocPaths(Index0r index0r) { 42 String string = getLangRefPathString(); 43 Object[] values = DocTableFieldEditor.deserializeValue(string); 44 for (Object value:values) { 45 if (value instanceof DocItem) { 46 DocItem item = (DocItem) value; 47 AXRoot root = index0r.addRoot(item.name, item.url, AXRootType.ASDOC); 48 index0r.initialize(root, AXLevel.TYPE); 49 } 50 } 51 } 52 @Override 53 public void initializeDefaultPreferences() { 54 super.initializeDefaultPreferences(); 55 } 36 56 } -
org.axdt.axdoc/src/org/axdt/axdoc/util/AXDocParser.java
r87f02d1 r85b4650 12 12 import org.axdt.axdoc.model.AXEntryType; 13 13 import org.axdt.axdoc.model.AXIndex; 14 import org.axdt.axdoc.model.AXIndexNode; 14 15 import org.axdt.axdoc.model.AXLevel; 15 import org.axdt.axdoc.model.AXPackage;16 16 import org.axdt.axdoc.model.AXRoot; 17 import org.axdt.axdoc.model.AXType;18 17 import org.axdt.axdoc.model.util.AXUtil; 19 18 import org.w3c.dom.DOMException; … … 118 117 root.setLevel(AXLevel.PACKAGE); 119 118 } 120 public void setDoc(AXIndex packageIndex, Node docNode) {119 public void setDoc(AXIndexNode node, Node docNode) { 121 120 if (docNode == null || docNode.getTextContent() == null) return; 122 121 String docContent = docNode.getTextContent().replaceAll("\\W+"," ").trim(); 123 122 if (docContent.trim().equals("")) return; 124 packageIndex.getOrCreatePackage().getAsdoc().add(docContent);123 node.getOrCreateReference().getAsdoc().add(docContent); 125 124 } 126 125 public void parseTypeLevel(AXIndex index) { … … 205 204 } 206 205 AXEntry typeIndex = index.createEntry(typeName, entryType); 207 AXType typeNode = AXUtil.createType(typeName);208 // we need to access the package reference and add it there209 // TODO a shortcut to create axnodes from existing indexnode info would be appropriate210 206 // load type doc summary 211 207 if (loadSummary) { 212 208 // remember package detail is ia/a/i 213 Node parent = typeNode.isInterface() ? item.getParentNode() : item;214 //setDoc(typeNode, parent.getParentNode().getNextSibling());209 Node parent = AXEntryType.INTERFACE.equals(typeIndex.getType()) ? item.getParentNode() : item; 210 setDoc(typeIndex, parent.getParentNode().getNextSibling()); 215 211 } 216 ((AXPackage)index.getReference()).getTypes().add(typeNode);217 212 index.getEntries().add(typeIndex); 218 log(3,"[DDD] found type ", type Node);213 log(3,"[DDD] found type ", typeIndex); 219 214 } 220 215 } … … 265 260 } 266 261 } 267 private void parseTypeMemberInfo(AXEntry result, Node detail) throws DOMException, XPathExpressionException {262 private void parseTypeMemberInfo(AXEntry typeIndex, Node detail) throws DOMException, XPathExpressionException { 268 263 String headerType = parseTypeMemberHeader(detail); 269 264 if ("Example".equals(headerType)) return; 265 // TODO handle events 270 266 if ("Event".equals(headerType)) return; 271 267 Node child = detail.getFirstChild(); … … 273 269 String childCode = child.getTextContent().trim(); 274 270 log(3,"[DDD] found detail: "+ childCode); 275 AXEntry memberIndex = result.createEntry(childCode, AXEntryType.METHOD); 276 //AXUtil.createMember(childCode); 277 //((AXType)result.getReference()).getMembers().add(memberNode); 278 result.getEntries().add(memberIndex); 271 AXEntry memberIndex = typeIndex.createEntry(childCode, AXEntryType.METHOD); 272 typeIndex.getEntries().add(memberIndex); 279 273 child = child.getNextSibling(); 280 274 boolean isGetterSetter = child.getNodeType() == Node.TEXT_NODE; -
org.axdt.axdoc/src/org/axdt/axdoc/util/Index0r.java
r87f02d1 r85b4650 14 14 import org.axdt.axdoc.model.AXRootType; 15 15 import org.axdt.axdoc.model.util.AXUtil; 16 import org.axdt.axdoc.preferences.AXDocPreferences; 16 17 import org.eclipse.core.runtime.Path; 17 18 import org.eclipse.emf.common.CommonPlugin; … … 27 28 28 29 public static Index0r getInstance() { 29 if (instance == null) 30 if (instance == null) { 30 31 instance = new Index0r(); 32 AXDocPreferences.checkAXDocPaths(instance); 33 } 31 34 return instance; 32 35 } … … 39 42 roots = new HashMap<String, AXRoot>(); 40 43 docParser = new AXDocParser(); 41 baseURI = CommonPlugin.resolve(URI.createURI("platform:/meta/"+AXDocPlugin.PLUGIN_ID)); 44 baseURI = createBaseUri(); 45 } 46 protected URI createBaseUri() { 47 return CommonPlugin.resolve(URI.createURI("platform:/meta/"+AXDocPlugin.PLUGIN_ID)); 42 48 } 43 49 public AXIndexNode[] find(String qname) { … … 112 118 return root; 113 119 } 120 public AXRoot[] getRoots() { 121 return roots.values().toArray(new AXRoot[roots.size()]); 122 } 114 123 public void initialize(AXRoot root, AXLevel level) { 115 124 if (root.getRootType() == AXRootType.ASDOC) { -
org.axdt.common/src/org/axdt/common/AxdtPlugin.java
r87f02d1 r85b4650 3 3 import java.net.URL; 4 4 5 import org.axdt.common.preferences.AxdtPreferences;6 5 import org.eclipse.core.runtime.FileLocator; 7 6 import org.eclipse.core.runtime.Path;
