private static List<String> tryParseParts(final Expression base, final String fieldName) { if (base instanceof QualifiedNameReference) { final List<String> newList = new ArrayList<>(((QualifiedNameReference) base).getName().getParts()); newList.add(fieldName); return newList; } else if (base instanceof DereferenceExpression) { final QualifiedName baseQualifiedName = getQualifiedName((DereferenceExpression) base); if (baseQualifiedName != null) { final List<String> newList = new ArrayList<>(baseQualifiedName.getParts()); newList.add(fieldName); return newList; } } return null; }