public static Set<CubeDimAttribute> getAttributes(String name, Map<String, String> props) { Set<CubeDimAttribute> attributes = new HashSet<>(); String attrStr = MetastoreUtil.getNamedStringValue(props, MetastoreUtil.getDimAttributeListKey(name)); String[] names = attrStr.split(","); for (String attrName : names) { String className = props.get(MetastoreUtil.getDimensionClassPropertyKey(attrName)); CubeDimAttribute attr; try { Class<?> clazz = Class.forName(className); Constructor<?> constructor; constructor = clazz.getConstructor(String.class, Map.class); attr = (CubeDimAttribute) constructor.newInstance(new Object[]{attrName, props}); } catch (Exception e) { throw new IllegalArgumentException("Invalid dimension", e); } attributes.add(attr); } return attributes; }
public static Set<CubeDimAttribute> getAttributes(String name, Map<String, String> props) { Set<CubeDimAttribute> attributes = new HashSet<>(); String attrStr = MetastoreUtil.getNamedStringValue(props, MetastoreUtil.getDimAttributeListKey(name)); String[] names = attrStr.split(","); for (String attrName : names) { String className = props.get(MetastoreUtil.getDimensionClassPropertyKey(attrName)); CubeDimAttribute attr; try { Class<?> clazz = Class.forName(className); Constructor<?> constructor; constructor = clazz.getConstructor(String.class, Map.class); attr = (CubeDimAttribute) constructor.newInstance(new Object[]{attrName, props}); } catch (Exception e) { throw new IllegalArgumentException("Invalid dimension", e); } attributes.add(attr); } return attributes; }
/** * Remove the dimension with name specified * * @param attrName */ public void removeAttribute(String attrName) { if (attributeMap.containsKey(attrName.toLowerCase())) { log.info("Removing attribute {}", getAttributeByName(attrName)); attributes.remove(getAttributeByName(attrName)); attributeMap.remove(attrName.toLowerCase()); MetastoreUtil.addNameStrings(getProperties(), MetastoreUtil.getDimAttributeListKey(getName()), attributes); } }
/** * Remove the dimension with name specified * * @param attrName */ public void removeAttribute(String attrName) { if (attributeMap.containsKey(attrName.toLowerCase())) { log.info("Removing attribute {}", getAttributeByName(attrName)); attributes.remove(getAttributeByName(attrName)); attributeMap.remove(attrName.toLowerCase()); MetastoreUtil.addNameStrings(getProperties(), MetastoreUtil.getDimAttributeListKey(getName()), attributes); } }
/** * Alters the attribute if already existing or just adds if it is new attribute * * @param attribute */ public void alterAttribute(@NonNull CubeDimAttribute attribute) { // Replace dimension if already existing if (attributeMap.containsKey(attribute.getName().toLowerCase())) { attributes.remove(getAttributeByName(attribute.getName())); log.info("Replacing attribute {} with {}", getAttributeByName(attribute.getName()), attribute); } attributes.add(attribute); attributeMap.put(attribute.getName().toLowerCase(), attribute); MetastoreUtil.addNameStrings(getProperties(), MetastoreUtil.getDimAttributeListKey(getName()), attributes); attribute.addProperties(getProperties()); }
/** * Alters the attribute if already existing or just adds if it is new attribute * * @param attribute */ public void alterAttribute(@NonNull CubeDimAttribute attribute) { // Replace dimension if already existing if (attributeMap.containsKey(attribute.getName().toLowerCase())) { attributes.remove(getAttributeByName(attribute.getName())); log.info("Replacing attribute {} with {}", getAttributeByName(attribute.getName()), attribute); } attributes.add(attribute); attributeMap.put(attribute.getName().toLowerCase(), attribute); MetastoreUtil.addNameStrings(getProperties(), MetastoreUtil.getDimAttributeListKey(getName()), attributes); attribute.addProperties(getProperties()); }
@Override public void addProperties() { super.addProperties(); MetastoreUtil.addNameStrings(getProperties(), MetastoreUtil.getDimAttributeListKey(getName()), attributes); setAttributedProperties(getProperties(), attributes); }
@Override public void addProperties() { super.addProperties(); MetastoreUtil.addNameStrings(getProperties(), MetastoreUtil.getDimAttributeListKey(getName()), attributes); setAttributedProperties(getProperties(), attributes); }