if (!this.getName().equalsIgnoreCase(other.getName())) { return false; if (!this.getType().equalsIgnoreCase(other.getType())) { return false; if (this.getUnit() == null) { if (other.getUnit() != null) { return false; } else if (!this.getUnit().equalsIgnoreCase(other.getUnit())) { return false; if (this.getAggregate() == null) { if (other.getAggregate() != null) { return false; } else if (!this.getAggregate().equalsIgnoreCase(other.getAggregate())) { return false; if (this.getFormatString() == null) { if (other.getFormatString() != null) { return false; } else if (!this.getFormatString().equalsIgnoreCase(other.getFormatString())) { return false; if (this.getMin() == null) { if (other.getMin() != null) {
/** * Alters the measure if already existing or just adds if it is new measure. * * @param measure new measure definition */ public void alterMeasure(@NonNull CubeMeasure measure) { // Replace measure if already existing if (measureMap.containsKey(measure.getName().toLowerCase())) { measures.remove(getMeasureByName(measure.getName())); log.info("Replacing measure {} with {}", getMeasureByName(measure.getName()), measure); } measures.add(measure); measureMap.put(measure.getName().toLowerCase(), measure); MetastoreUtil.addNameStrings(getProperties(), MetastoreUtil.getCubeMeasureListKey(getName()), measures); measure.addProperties(getProperties()); }
@Override public void addProperties(Map<String, String> props) { super.addProperties(props); props.put(MetastoreUtil.getMeasureClassPropertyKey(getName()), getClass().getName()); props.put(MetastoreUtil.getMeasureTypePropertyKey(getName()), getType()); if (unit != null) { props.put(MetastoreUtil.getMeasureUnitPropertyKey(getName()), unit); } if (getFormatString() != null) { props.put(MetastoreUtil.getMeasureFormatPropertyKey(getName()), formatString); } if (aggregate != null) { props.put(MetastoreUtil.getMeasureAggrPropertyKey(getName()), aggregate); } if (min != null) { props.put(MetastoreUtil.getMeasureMinPropertyKey(getName()), min.toString()); } if (max != null) { props.put(MetastoreUtil.getMeasureMaxPropertyKey(getName()), max.toString()); } } }
/** * Create XMeasure from hive ql cube measure */ public static XMeasure xMeasureFromHiveMeasure(CubeMeasure cm) { if (cm == null) { return null; } XMeasure xm = XCF.createXMeasure(); xm.setName(cm.getName()); xm.setDescription(cm.getDescription()); xm.setDisplayString(cm.getDisplayString()); xm.setDefaultAggr(cm.getAggregate()); xm.setFormatString(cm.getFormatString()); xm.setType(XMeasureType.valueOf(cm.getType().toUpperCase())); xm.setUnit(cm.getUnit()); xm.setStartTime(getXMLGregorianCalendar(cm.getStartTime())); xm.setEndTime(getXMLGregorianCalendar(cm.getEndTime())); xm.setMin(cm.getMin()); xm.setMax(cm.getMax()); xm.setTags(getXProperties(xPropertiesFromMap(cm.getTags()))); return xm; }
assertEquals(toAlter.getMeasureByName("msr3").getDisplayString(), "Measure3Altered"); assertEquals(toAlter.getMeasureByName("msr3").getDescription(), "third altered measure"); assertNull(toAlter.getMeasureByName("msr4")); assertNotNull(toAlter.getDimAttributeByName("testAddDim1")); assertNotNull(altered.getMeasureByName("testAddMsr1")); CubeMeasure addedMsr = altered.getMeasureByName("testAddMsr1"); assertEquals(addedMsr.getType(), "int"); assertNotNull(altered.getDimAttributeByName("testAddDim1")); BaseDimAttribute addedDim = (BaseDimAttribute) altered.getDimAttributeByName("testAddDim1"); assertEquals(addedDim.getDescription(), "dim to add"); assertTrue(altered.getTimedDimensions().contains("zt")); assertEquals(altered.getMeasureByName("msr3").getDisplayString(), "Measure3Altered"); assertEquals(altered.getMeasureByName("msr3").getDescription(), "third altered measure"); assertNotNull(altered.getDimAttributeByName("dim1")); assertEquals(altered.getDimAttributeByName("dim1").getDescription(), "basedim altered"); addedMsr = altered.getMeasureByName("testaddmsr1"); assertNotNull(addedMsr); assertEquals(addedMsr.getType(), "double"); assertTrue(client.getAllFacts(altered).isEmpty());
.getAllFieldNames().size()); assertNotNull(cube2.getMeasureByName("msr4")); assertEquals(cube2.getMeasureByName("msr4").getDescription(), "fourth measure"); assertEquals(cube2.getMeasureByName("msr4").getDisplayString(), "Measure4"); assertNotNull(cube2.getDimAttributeByName("location")); assertEquals(cube2.getDimAttributeByName("location").getDescription(), "location hierarchy");
public void testMeasureJaxBConversion() throws Exception { CubeMeasure cubeMeasure = new ColumnMeasure(new FieldSchema("msr1", "int", "first measure"), null, null, null, null, null, null, null, 0.0, 9999.0); XMeasure measure = JAXBUtils.xMeasureFromHiveMeasure(cubeMeasure); CubeMeasure actualMeasure = JAXBUtils.hiveMeasureFromXMeasure(measure); assertEquals(actualMeasure, cubeMeasure); assertEquals(actualMeasure.getMin(), measure.getMin()); assertEquals(actualMeasure.getMax(), measure.getMax()); }
@Override public Set<String> getMeasureNames() { Set<String> measureNames = new HashSet<>(); for (CubeMeasure f : getMeasures()) { measureNames.add(f.getName().toLowerCase()); } return measureNames; }
@Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((getType() == null) ? 0 : getType().toLowerCase().hashCode()); result = prime * result + ((unit == null) ? 0 : unit.toLowerCase().hashCode()); result = prime * result + ((aggregate == null) ? 0 : aggregate.toLowerCase().hashCode()); result = prime * result + ((formatString == null) ? 0 : formatString.toLowerCase().hashCode()); return result; }
return !function.equalsIgnoreCase(measure.getAggregate()); } else if (!aggregateResolverDisabled && measure.getAggregate() != null) {
private static void setMeasureProperties(Map<String, String> props, Set<CubeMeasure> measures) { for (CubeMeasure measure : measures) { measure.addProperties(props); } }
/** * Create XMeasure from hive ql cube measure */ public static XMeasure xMeasureFromHiveMeasure(CubeMeasure cm) { if (cm == null) { return null; } XMeasure xm = XCF.createXMeasure(); xm.setName(cm.getName()); xm.setDescription(cm.getDescription()); xm.setDisplayString(cm.getDisplayString()); xm.setDefaultAggr(cm.getAggregate()); xm.setFormatString(cm.getFormatString()); xm.setType(XMeasureType.valueOf(cm.getType().toUpperCase())); xm.setUnit(cm.getUnit()); xm.setStartTime(getXMLGregorianCalendar(cm.getStartTime())); xm.setEndTime(getXMLGregorianCalendar(cm.getEndTime())); xm.setMin(cm.getMin()); xm.setMax(cm.getMax()); xm.setTags(getXProperties(xPropertiesFromMap(cm.getTags()))); return xm; }
assertEquals(hcube.getMeasureByName("msr1").getDescription(), "first measure"); assertEquals(hcube.getMeasureByName("msr1").getDisplayString(), "Measure1"); assertNotNull(hcube.getExpressionByName("expr1")); assertEquals(hcube.getExpressionByName("expr1").getDescription(), "first expression");
@Override public void addProperties(Map<String, String> props) { super.addProperties(props); props.put(MetastoreUtil.getMeasureClassPropertyKey(getName()), getClass().getName()); props.put(MetastoreUtil.getMeasureTypePropertyKey(getName()), getType()); if (unit != null) { props.put(MetastoreUtil.getMeasureUnitPropertyKey(getName()), unit); } if (getFormatString() != null) { props.put(MetastoreUtil.getMeasureFormatPropertyKey(getName()), formatString); } if (aggregate != null) { props.put(MetastoreUtil.getMeasureAggrPropertyKey(getName()), aggregate); } if (min != null) { props.put(MetastoreUtil.getMeasureMinPropertyKey(getName()), min.toString()); } if (max != null) { props.put(MetastoreUtil.getMeasureMaxPropertyKey(getName()), max.toString()); } } }
@Override public Set<String> getMeasureNames() { Set<String> measureNames = new HashSet<>(); for (CubeMeasure f : getMeasures()) { measureNames.add(f.getName().toLowerCase()); } return measureNames; }
@Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((getType() == null) ? 0 : getType().toLowerCase().hashCode()); result = prime * result + ((unit == null) ? 0 : unit.toLowerCase().hashCode()); result = prime * result + ((aggregate == null) ? 0 : aggregate.toLowerCase().hashCode()); result = prime * result + ((formatString == null) ? 0 : formatString.toLowerCase().hashCode()); return result; }
return !function.equalsIgnoreCase(measure.getAggregate()); } else if (!aggregateResolverDisabled && measure.getAggregate() != null) {
private static void setMeasureProperties(Map<String, String> props, Set<CubeMeasure> measures) { for (CubeMeasure measure : measures) { measure.addProperties(props); } }