@Override public void visit(CsmReference ref, CsmFile file) { CsmObject obj = ref.getReferencedObject(); if (CsmKindUtilities.isField(obj)) { list.add(ref); } } }
@Override public List<? extends CsmOffsetable> getBlocks(CsmFile csmFile) { Collection<CsmReference> references = CsmReferenceResolver.getDefault().getReferences(csmFile); List<CsmOffsetable> res = new ArrayList<CsmOffsetable>(); for(CsmReference ref : references) { if (CsmKindUtilities.isField(ref.getReferencedObject())){ res.add(ref); } } return res; } @Override
private void initReferencedObjects(CsmObject referencedObject, Collection<EncapsulateFieldInfo> fieldsInfo) { referencedFields = new ArrayList<CsmField>(fieldsInfo.size()); if (!fieldsInfo.isEmpty()) { for (EncapsulateFieldInfo info : fieldsInfo) { final CsmField field = info.getField(); referencedFields.add(field); if (enclosingClass == null) { enclosingClass = field.getContainingClass(); } } } else if (referencedObject != null) { if (CsmKindUtilities.isClass(referencedObject)) { this.enclosingClass = (CsmClass) referencedObject; } else if (CsmKindUtilities.isField(referencedObject)) { this.enclosingClass = ((CsmField) referencedObject).getContainingClass(); } } }
@Override public boolean canEncapsulateFields(Lookup lookup) { Collection<? extends Node> nodes = new HashSet<Node>(lookup.lookupAll(Node.class)); if (nodes.size() != 1) { return false; } CsmObject ref = CsmRefactoringUtils.findContextObject(lookup); if (RefactoringActionsProvider.isFromEditor(lookup)) { // if inside class => allow to encapsulate fields CsmContext editorContext = CsmContext.create(lookup); if (editorContext != null) { CsmClass cls = Utilities.extractEnclosingClass(editorContext); return cls != null; } return false; } else { return CsmKindUtilities.isField(ref) || CsmKindUtilities.isClass(ref); } }
private Collection<CompletionItem> getItems(final BaseDocument doc, final int caretOffset) { List<CompletionItem> items = new ArrayList<>(); if (init(doc, caretOffset)) { CsmContext context = CsmContext.create(doc, caretOffset, caretOffset, caretOffset); if (context != null) { CsmClass enclosingClass = context.getEnclosingClass(); if (enclosingClass != null) { List<CsmObject> path = context.getPath(); CsmObject last = path.get(path.size()-1); if (CsmKindUtilities.isClass(last) || CsmKindUtilities.isField(last)) { PopupDelegateCompletionItem item = PopupDelegateCompletionItem.createImplementItem(caretOffset, component); if (item != null) { items.add(item); } } } } } return items; }
public static void scanForFieldsAndConstructors(final CsmClass clsPath, final Set<CsmField> shouldBeInitializedFields, final Set<CsmField> mayBeIninitializedFields, final Set<CsmField> cannotBeInitializedFields, final List<CsmConstructor> constructors) { for (CsmMember member : clsPath.getMembers()) { if (CsmKindUtilities.isField(member)) { CsmField field = (CsmField) member; if (field.isStatic()) { continue; } CsmType type = field.getType(); if (type.getArrayDepth() > 0) { cannotBeInitializedFields.add(field); continue; } if (type.isConst() || type.isReference()) { shouldBeInitializedFields.add(field); continue; } mayBeIninitializedFields.add(field); } else if (CsmKindUtilities.isConstructor(member)) { constructors.add((CsmConstructor)member); } } } //
csmClassContainer = (CsmClass) selectedResolvedObject; } else { assert CsmKindUtilities.isField(selectedResolvedObject): "should be field"; csmClassContainer = ((CsmField)selectedResolvedObject).getContainingClass(); Boolean anIsUpperCase = null; for (CsmMember member : csmClassContainer.getMembers()) { if (CsmKindUtilities.isField(member)) { result.add((CsmField) member); } else if (anIsUpperCase == null && CsmKindUtilities.isMethod(member)) {
if (!(CsmKindUtilities.isClass(last) || CsmKindUtilities.isField(last))) { return ret;
if (!(CsmKindUtilities.isClass(last) || CsmKindUtilities.isField(last))) { return ret;
if (!(CsmKindUtilities.isClass(last) || CsmKindUtilities.isField(last))) { return ret; if (CsmKindUtilities.isField(member)) { CsmField variableElement = (CsmField)member; ElementNode.Description description = ElementNode.Description.create(variableElement, null, true, variableElement.equals(objectUnderOffset));
private CsmObject getRefactoredCsmElement() { CsmObject out = getStartReferenceObject(); if (out == null) { CsmContext editorContext = getEditorContext(); if (editorContext != null) { out = editorContext.getObjectUnderOffset(); if (!CsmKindUtilities.isField(out)) { out = Utilities.extractEnclosingClass(getEditorContext()); } } } return out; }
private static CsmClass resolveInitializerContext(List<Token<TokenId>> identSequence, CsmClass context) { for (Token<TokenId> ident : identSequence) { CsmClassifier classifier = null; if (ident.text() != null) { String fieldName = ident.text().toString(); for (CsmMember csmMember : context.getMembers()) { if (CsmKindUtilities.isField(csmMember) && fieldName.equals(csmMember.getName().toString())) { CsmType fieldType = ((CsmField)csmMember).getType(); if (fieldType != null) { classifier = CsmBaseUtilities.getOriginalClassifier(fieldType.getClassifier(), fieldType.getContainingFile()); } break; } } } if (CsmKindUtilities.isClass(classifier)) { context = (CsmClass) classifier; } if (classifier == null) { context = null; // error happened break; } } return context; }
public static <T extends CsmMember> MemberInfo<T> create(T elem) { // String format = "%name%"; // ElementHeaders.NAME; // NOI18N CharSequence htmlText = elem.getName(); Group g = null; if (CsmKindUtilities.isField(elem)) { CsmField field = (CsmField) elem; // format += " : " + "%type%"; //NOI18N ElementHeaders.TYPE; // NOI18N htmlText = field.getName().toString() + ": " + field.getType().getText(); //NOI18N g=Group.FIELD; } else if (CsmKindUtilities.isMethod(elem)) { CsmMethod method = (CsmMethod) elem; // format += "%parameters%" + " : " + "%type%"; //NOI18N ElementHeaders.TYPE; // NOI18N htmlText = method.getSignature() + ": " + method.getReturnType().getText(); //NOI18N g=Group.METHOD; } MemberInfo<T> mi = new MemberInfo<T>(elem, htmlText.toString(), CsmImageLoader.getIcon(elem), elem.getName().toString(), g, EnumSet.of(elem.getVisibility()), false); return mi; }
res.add(RefactoringActionsFactory.renameAction()); res.add(RefactoringActionsFactory.whereUsedAction()); if (CsmKindUtilities.isField(decl) || CsmKindUtilities.isClass(decl)) { res.add(CsmRefactoringActionsFactory.encapsulateFieldsAction()); } else if (CsmKindUtilities.isFunction(decl) && !CsmKindUtilities.isDestructor(decl)) {
if (CsmKindUtilities.isField(csmMember)) { return null;
assert (CsmKindUtilities.isCsmObject(getAssociatedObject())) : "must be csm object"; //NOI18N CsmObject var = (CsmObject) getAssociatedObject(); if (CsmKindUtilities.isField(var)) { if (fieldComponent == null) { fieldComponent = createPaintComponent();
if (CsmKindUtilities.isField(member)) { CsmField field = (CsmField) member; if (!field.isStatic()) {
if (CsmKindUtilities.isClass(cls)) { for (CsmMember csmMember : ((CsmClass)cls).getMembers()) { if(CsmKindUtilities.isField(csmMember) && csmMember.getName().toString().equals(varName)) { return ((CsmField)csmMember).getType();
} else if (CsmKindUtilities.isFile(obj)) { kindName = getString("LBL_File"); // NOI18N } else if (CsmKindUtilities.isField(obj)) { kindName = getString("LBL_Field"); // NOI18N } else if (CsmKindUtilities.isParamVariable(obj)) {
} else if (CsmKindUtilities.isEnumForwardDeclaration(csmObj)) { return getCsmItemFactory().createForwardEnumResultItem((CsmEnumForwardDeclaration) csmObj, classDisplayOffset, false); } else if (CsmKindUtilities.isField(csmObj)) { return getCsmItemFactory().createFieldResultItem((CsmField) csmObj); } else if (CsmKindUtilities.isConstructor(csmObj)) { // must be checked before isMethod, because constructor is method too