public static CAS createEmptyCAS(TypeSystemDescription typeSystem) { ResourceSpecifierFactory resourceSpecifierFactory = UIMAFramework .getResourceSpecifierFactory(); TypePriorities typePriorities = resourceSpecifierFactory .createTypePriorities(); FsIndexDescription indexDesciptor = new FsIndexDescription_impl(); indexDesciptor.setLabel("TOPIndex"); indexDesciptor.setTypeName("uima.cas.TOP"); indexDesciptor.setKind(FsIndexDescription.KIND_SORTED); CAS cas; try { cas = CasCreationUtils.createCas(typeSystem, typePriorities, new FsIndexDescription[] { indexDesciptor }); } catch (ResourceInitializationException e) { e.printStackTrace(); cas = null; } return cas; }
/** * Adds the fs index key description. * * @param fsid the fsid * @param key the key */ public void addFsIndexKeyDescription(FsIndexDescription fsid, FsIndexKeyDescription key) { FsIndexKeyDescription[] prevKeys = fsid.getKeys(); FsIndexKeyDescription[] newKeys = new FsIndexKeyDescription[prevKeys == null ? 1 : prevKeys.length + 1]; if (null != prevKeys) System.arraycopy(prevKeys, 0, newKeys, 0, prevKeys.length); newKeys[newKeys.length - 1] = key; fsid.setKeys(newKeys); }
.getLabel()); if (duplicateIndex == null) { aggIndexes.put(indexes[i].getLabel(), indexes[i]); } else if (!duplicateIndex.equals(indexes[i])) { duplicateIndex.getLabel(), duplicateIndex.getSourceUrlString(), indexes[i].getSourceUrlString() });
.createFsIndexDescription(); id.setLabel(dialog.indexName); id.setTypeName(dialog.indexType); id.setKeys(dialog.keys); id.setKind(dialog.indexKind); return; FsIndexDescription fsid = getFsIndexDescriptionFromTableTreeItem(parent); AddIndexKeyDialog dialog = new AddIndexKeyDialog(this, fsid.getTypeName(), handleDefaultIndexKind(fsid.getKind()), getAlreadyUsedFeatures(fsid)); FsIndexKeyDescription newKey = addOrEditIndexKey(dialog, null); if (null != newKey) { fsid.setLabel(setValueChanged(dialog.indexName, fsid.getLabel())); fsid.setTypeName(setValueChanged(dialog.indexType, fsid.getTypeName())); fsid.setKeys(setValueChangedKeys(dialog.keys, fsid.getKeys())); fsid.setKind(setValueChanged(dialog.indexKind, handleDefaultIndexKind(fsid.getKind()))); TableTreeItem parent = item.getParentItem(); FsIndexDescription fsid = getFsIndexDescriptionFromTableTreeItem(parent); AddIndexKeyDialog dialog = new AddIndexKeyDialog(this, fsid.getTypeName(), handleDefaultIndexKind(fsid.getKind()), getAlreadyUsedFeatures(fsid), key); valueChanged = false; addOrEditIndexKey(dialog, key);
/** * Update index spec. * * @param item the item * @param ndx the ndx */ private void updateIndexSpec(TableTreeItem item, FsIndexDescription ndx) { item.setText(INDEX_NAME_COL, ndx.getLabel()); item.setText(INDEX_TYPE_COL, formatName(ndx.getTypeName())); item.setText(INDEX_KIND_COL, handleDefaultIndexKind(ndx.getKind())); item.setData(ndx); removeChildren(item); FsIndexKeyDescription[] keys = ndx.getKeys(); if (null != keys) for (int i = 0; i < keys.length; i++) { updateKeySpec(new TableTreeItem(item, SWT.NONE), keys[i]); } }
/** * Gets the built in index description. * * @return the built in index description */ public FsIndexDescription getBuiltInIndexDescription() { if (m_builtInIndexDescription == null) { m_builtInIndexDescription = UIMAFramework.getResourceSpecifierFactory() .createFsIndexDescription(); m_builtInIndexDescription.setLabel(ANNOTATION_INDEX_BUILT_IN); m_builtInIndexDescription.setTypeName(CAS.TYPE_NAME_ANNOTATION); m_builtInIndexDescription.setKind("sorted"); FsIndexKeyDescription[] keys = new FsIndexKeyDescription[] { createFsIndexKeyDescription(), createFsIndexKeyDescription(), createFsIndexKeyDescription() }; keys[0].setFeatureName("begin"); keys[0].setComparator(FSIndexComparator.STANDARD_COMPARE); keys[1].setFeatureName("end"); keys[1].setComparator(FSIndexComparator.REVERSE_STANDARD_COMPARE); keys[2].setTypePriority(true); m_builtInIndexDescription.setKeys(keys); } return m_builtInIndexDescription; }
if (indexes[i].getTypeName().equals(sOldTypeName)) { indexes[i].setTypeName(sNewTypeName); somethingChanged = true;
if (typeName.equals(indexes[i].getTypeName())) { FsIndexKeyDescription[] newFsKeys = (FsIndexKeyDescription[]) Utility .removeElementsFromArray(indexes[i].getKeys(), typeOrFeatureName, FsIndexKeyDescription.class, fsIndexKeyDescCompare); if (newFsKeys != indexes[i].getKeys()) { somethingChanged = true; indexes[i].setKeys(newFsKeys);
if (null != fsid) { for (int i = 0; i < fsid.length; i++) { if (typeName.equals(fsid[i].getTypeName())) { FsIndexKeyDescription[] keys = fsid[i].getKeys(); if (null != keys) { for (int j = 0; j < keys.length; j++) {
/** * Gets the already used features. * * @param ndx the ndx * @return the already used features */ public List getAlreadyUsedFeatures(FsIndexDescription ndx) { List result = new ArrayList(); FsIndexKeyDescription[] items = ndx.getKeys(); if (null == items) return result; for (int i = 0; i < items.length; i++) { result.add(items[i].getFeatureName()); } return result; }
@Override public int compare(Object o1, Object o2) { return ((FsIndexDescription) o2).getTypeName().equals(o1) ? 0 : 1; } };
/** * This has to check the resolvedImports, mergedWithDelegates version of the fsindexes. * * @param indexLabel the index label * @return true, if is duplicate index label */ public boolean isDuplicateIndexLabel(String indexLabel) { FsIndexDescription[] indexes = getAnalysisEngineMetaData().getFsIndexes(); if (indexes == null) { return false; } for (int i = 0; i < indexes.length; i++) { if (indexes[i].getLabel().equals(indexLabel)) { return true; } } return false; }
String kindStr = aIndexes[i].getKind(); if (kindStr != null) { if (kindStr.equals(FsIndexDescription.KIND_BAG)) Type type = tsm.getType(aIndexes[i].getTypeName()); if (type == null) { throw new ResourceInitializationException( ResourceInitializationException.UNDEFINED_TYPE_FOR_INDEX, new Object[] { aIndexes[i].getTypeName(), aIndexes[i].getLabel(), aIndexes[i].getSourceUrlString() }); FsIndexKeyDescription[] keys = aIndexes[i].getKeys(); if (keys != null) { for (int j = 0; j < keys.length; j++) { throw new ResourceInitializationException( ResourceInitializationException.INDEX_KEY_FEATURE_NOT_FOUND, new Object[] { keys[j].getFeatureName(), aIndexes[i].getLabel(), aIndexes[i].getSourceUrlString() }); irm.createIndex(comparator, aIndexes[i].getLabel(), kind);
/** * Checks if is feature used in index. * * @param fullFeatureName the full feature name * @return true, if is feature used in index */ private boolean isFeatureUsedInIndex(String fullFeatureName) { if (!isLocalProcessingDescriptor()) { return false; } FsIndexCollection indexCollection = editor.getMergedFsIndexCollection(); FsIndexDescription[] fsid = (null == indexCollection) ? null : indexCollection.getFsIndexes(); if (null != fsid) { for (int i = 0; i < fsid.length; i++) { FsIndexKeyDescription[] keys = fsid[i].getKeys(); if (null != keys) { for (int j = 0; j < keys.length; j++) { if (keys[j].getFeatureName().equals(fullFeatureName)) return true; } } } } return false; }
if (indexes[i].getTypeName().equals(sTypeName)) { return true;
indexNameUI.setText(originalIndexName = existingNDX.getLabel()); indexKindUI.setText(AbstractSection.handleDefaultIndexKind(existingNDX.getKind())); indexTypeUI.setText(existingNDX.getTypeName()); keys = existingNDX.getKeys(); if (null != keys) { for (int i = 0; i < keys.length; i++) {
indexDesciptor.setLabel("TOPIndex"); indexDesciptor.setTypeName("uima.cas.TOP"); indexDesciptor.setKind(FsIndexDescription.KIND_SORTED);
/** * Removes the fs index key description. * * @param fsid the fsid * @param key the key */ public void removeFsIndexKeyDescription(FsIndexDescription fsid, FsIndexKeyDescription key) { fsid.setKeys((FsIndexKeyDescription[]) Utility.removeElementFromArray(fsid.getKeys(), key, FsIndexKeyDescription.class)); }
/** * Swap index keys. * * @param itemBelow the item below * @param newSelection the new selection */ public static void swapIndexKeys(TableTreeItem itemBelow, int newSelection) { TableTreeItem parent = itemBelow.getParentItem(); FsIndexDescription fsid = getFsIndexDescriptionFromTableTreeItem(parent); int i = getIndex(itemBelow); FsIndexKeyDescription[] keys = fsid.getKeys(); FsIndexKeyDescription temp = keys[i]; keys[i] = keys[i - 1]; keys[i - 1] = temp; // swap items in the GUI swapTableTreeItems(itemBelow, newSelection); }