String i = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; RESULT = new Id.NameSegment(i, Id.Quoting.UNQUOTED); String i = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; RESULT = new Id.NameSegment(i, Id.Quoting.UNQUOTED); String i = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; RESULT = new Id.NameSegment(i, Id.Quoting.KEY); // yuck String i = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; RESULT = new Id.NameSegment(i, Id.Quoting.QUOTED);
String data = ((Id.NameSegment)segments.get(0)).getName(); segments.add(new Id.NameSegment( data.substring(0, data.indexOf(".")), segment.getQuoting())); segments.add(new Id.NameSegment( data.substring(data.indexOf(".") + 1), segment.getQuoting()));
if (!nameSegment.matches("Measures")) { HierarchyUsage hierUsage = getUsageByName(nameSegment.name); if (hierUsage == null) {
final Dimension dimension = lookupDimension( new Id.NameSegment( xmlCalcMember.dimension, Id.Quoting.UNQUOTED));
final String propertyName = lastSegment instanceof Id.NameSegment ? ((Id.NameSegment) lastSegment).getName() : null; final Member member =
uniqueNameParts = Collections.<Id.Segment>singletonList( new Id.NameSegment( defaultMemberName, Id.Quoting.UNQUOTED));
segmentList.addAll( Util.parseIdentifier(hierarchy.getUniqueName())); segmentList.add(new Id.NameSegment(name)); final Formula formula = new Formula( new Id(segmentList),
if (s instanceof Id.NameSegment) { Id.NameSegment nameSegment = (Id.NameSegment) s; oe = Util.lookupHierarchyLevel(this, nameSegment.getName()); if (oe == null) { oe = Util.lookupHierarchyRootMember(
Dimension dimension = lookupDimension( new Id.NameSegment( xmlCalcMember.dimension, Id.Quoting.UNQUOTED)); hierarchy = lookupHierarchy( new Id.NameSegment( xmlCalcMember.hierarchy, Id.Quoting.UNQUOTED),
createScopedNamedSet( ((Id.NameSegment) id.getSegments().get(0)) .getName(), parent, call2.getArg(0));
Hierarchy hierarchy = mdxCube.lookupHierarchy( new Id.NameSegment(sHierarchy), fail); if (hierarchy == null) {
public OlapElement getElementChild( OlapElement parent, Id.Segment s, MatchType matchType) { // first look in cube OlapElement mdxElement = schemaReader.getElementChild(parent, s, matchType); if (mdxElement != null) { return mdxElement; } // then look in defined members (fixes MONDRIAN-77) // then in defined sets if (!(s instanceof Id.NameSegment)) { return null; } String name = ((Id.NameSegment) s).getName(); for (Formula formula : query.formulas) { if (formula.isMember()) { continue; // have already done these } Id id = formula.getIdentifier(); if (id.getSegments().size() == 1 && id.getSegments().get(0).matches(name)) { return formula.getNamedSet(); } } return mdxElement; }
/** * Looks up a named set defined by an alias. * * @param nameParts Multi-part identifier for set * @param scopeList Parse tree node where name is used (last in list) and */ ScopedNamedSet lookupScopedNamedSet( List<Id.Segment> nameParts, ArrayStack<QueryPart> scopeList) { if (nameParts.size() != 1) { return null; } if (!(nameParts.get(0) instanceof Id.NameSegment)) { return null; } String name = ((Id.NameSegment) nameParts.get(0)).getName(); ScopedNamedSet bestScopedNamedSet = null; int bestScopeOrdinal = -1; for (ScopedNamedSet scopedNamedSet : scopedNamedSets) { if (Util.equalName(scopedNamedSet.name, name)) { int scopeOrdinal = scopeList.indexOf(scopedNamedSet.scope); if (scopeOrdinal > bestScopeOrdinal) { bestScopedNamedSet = scopedNamedSet; bestScopeOrdinal = scopeOrdinal; } } } return bestScopedNamedSet; }
final public Id.NameSegment nameSegment() throws ParseException { String id; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case DIMENSION: case PROPERTIES: id = keyword(); // Allow a non-reserved keyword to be converted back into an identifier // if it is not in a context where it is meaningful. {if (true) return new Id.NameSegment(id, Id.Quoting.UNQUOTED);} break; case ID: jj_consume_token(ID); {if (true) return new Id.NameSegment(token.image, Id.Quoting.UNQUOTED);} break; case QUOTED_ID: jj_consume_token(QUOTED_ID); {if (true) return new Id.NameSegment( stripQuotes(token.image, "[", "]", "]]"), Id.Quoting.QUOTED);} break; default: jj_la1[1] = jj_gen; jj_consume_token(-1); throw new ParseException(); } throw new Error("Missing return statement in function"); }
/** * Changes the last part of the name to <code>newName</code>. For example, * <code>[Abc].[Def].[Ghi]</code> becomes <code>[Abc].[Def].[Xyz]</code>; * and the member or set is renamed from <code>Ghi</code> to * <code>Xyz</code>. */ void rename(String newName) { String oldName = getElement().getName(); final List<Id.Segment> segments = this.id.getSegments(); assert Util.last(segments) instanceof Id.NameSegment; assert ((Id.NameSegment) Util.last(segments)).name .equalsIgnoreCase(oldName); segments.set( segments.size() - 1, new Id.NameSegment(newName)); if (isMember) { mdxMember.setName(newName); } else { mdxSet.setName(newName); } }
/** * Converts an array of name parts {"part1", "part2"} into a single string * "[part1].[part2]". If the names contain "]" they are escaped as "]]". */ public static String implode(List<Id.Segment> names) { StringBuilder sb = new StringBuilder(64); for (int i = 0; i < names.size(); i++) { if (i > 0) { sb.append("."); } // FIXME: should be: // names.get(i).toString(sb); // but that causes some tests to fail Id.Segment segment = names.get(i); switch (segment.getQuoting()) { case UNQUOTED: segment = new Id.NameSegment(((Id.NameSegment) segment).name); } segment.toString(sb); } return sb.toString(); }
public Exp accept(Validator validator) { if (segments.size() == 1) { final Segment s = segments.get(0); if (s.quoting == Quoting.UNQUOTED) { NameSegment nameSegment = (NameSegment) s; if (validator.getFunTable().isReserved(nameSegment.getName())) { return Literal.createSymbol( nameSegment.getName().toUpperCase()); } } } final Exp element = Util.lookup( validator.getQuery(), validator.getSchemaReader().withLocus(), segments, true); if (element == null) { return null; } return element.accept(validator); }
final public Id.NameSegment ampId() throws ParseException { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case AMP_QUOTED_ID: jj_consume_token(AMP_QUOTED_ID); {if (true) return new Id.NameSegment( stripQuotes(token.image, "&[", "]", "]]"), Id.Quoting.QUOTED);} break; case AMP_UNQUOTED_ID: jj_consume_token(AMP_UNQUOTED_ID); {if (true) return new Id.NameSegment( token.image.substring(1), Id.Quoting.UNQUOTED);} break; default: jj_la1[3] = jj_gen; jj_consume_token(-1); throw new ParseException(); } throw new Error("Missing return statement in function"); }