private void addMemberProperties(Member m, Element e) { Property[] props = m.getLevel().getProperties(); if (props != null) { for (int i = 0; i < props.length; i++) { String propName = props[i].getName(); String propValue = "" + m.getPropertyValue(propName); Element propElem = elem("property", e); propElem.setAttribute("name", propName); propElem.setAttribute("value", propValue); } } }
/** * Returns a list of this level's properties, optionally including standard * properties that are available on every level. * * <p>NOTE: Not part of the olap4j API. * * @param includeStandard Whether to include standard properties * @return List of properties */ NamedList<Property> getProperties(boolean includeStandard) { final NamedList<Property> list = new ArrayNamedListImpl<Property>() { public String getName(Object property) { return ((Property)property).getName(); } }; // standard properties first if (includeStandard) { list.addAll( Arrays.asList(Property.StandardMemberProperty.values())); list.addAll(MondrianOlap4jProperty.MEMBER_EXTENSIONS.values()); } // then level-specific properties for (mondrian.olap.Property property : level.getProperties()) { list.add(new MondrianOlap4jProperty(property)); } return list; }
/** * Finds a member property called <code>propertyName</code> at, or above, * <code>level</code>. */ public static Property lookupProperty( Level level, String propertyName) { do { Property[] properties = level.getProperties(); for (Property property : properties) { if (property.getName().equals(propertyName)) { return property; } } level = level.getParentLevel(); } while (level != null); // Now try a standard property. boolean caseSensitive = MondrianProperties.instance().CaseSensitive.get(); final Property property = Property.lookup(propertyName, caseSensitive); if (property != null && property.isMemberProperty() && property.isStandard()) { return property; } return null; }
level = level.getParentLevel()) final Property[] levelProperties = level.getProperties(); for (final Property levelProperty : levelProperties) { Property existingProperty = lookupProperty(