/** * @return the amount of rows that was written. */ @Metric("Inserts") int getWrittenRowCount();
MetricDescriptorImpl(final Class<? extends AnalyzerResult> resultClass, final Method method) { _resultClass = resultClass; _method = method; _method.setAccessible(true); final String metricName = ReflectionUtils.getAnnotation(_method, Metric.class).value(); if (StringUtils.isNullOrEmpty(metricName)) { throw new IllegalStateException("Metric method has no name: " + _method); } _name = metricName.trim(); _methodName = _method.getName(); }
@Override public final int compareTo(final MetricDescriptor o) { final Metric metric1 = getAnnotation(Metric.class); final int order1 = metric1.order(); final Metric metric2 = o.getAnnotation(Metric.class); final int order2; if (metric2 == null) { order2 = Integer.MAX_VALUE; } else { order2 = metric2.order(); } final int diff = order1 - order2; if (diff == 0) { return getName().compareTo(o.getName()); } return diff; }
/** * @return the amount of updates that was executed. */ @Metric("Updates") int getUpdatesCount();
/** * Gets the amount of rows that was errornuosly not written. This will only * be non-zero if a error handling strategy has been specified, typically * using {@link ErrorHandlingOption}. * * @return the amount of rows that was not written. */ @Metric("Errornous rows") int getErrorRowCount();
@Metric("Distinct count") @Override public abstract Integer getDistinctCount(); }
@Metric("Unique count") public int getUniqueCount() { return _uniqueCount; }
@Metric(order = 1, value = "Row count") public int getTotalRowCount() { return _rowCount; }
@Metric("Row count") public int getRowCount() { return _rowCount; }
@Metric("Null count") public int getNullCount() { return _nullCount; }
@Metric("Category count") public ParameterizableMetric getCategoryCount() { return new ParameterizableMetric() { @Override public Number getValue(final String parameter) { return getCategoryCount(parameter); } @Override public Collection<String> getParameterSuggestions() { return getCategoryNames(); } }; }
@Metric("Non-unique count") public int getNonUniqueCount() { return _nonUniqueCount; }
@Metric(order = 1, value = "Mock message") public String getMockMessage() { return "MockAnalyzerResult available"; }
@Metric("Null count") @Override public abstract int getNullCount();
@Metric("Total count") @Override public abstract int getTotalCount();
@Metric("Unique count") @Override public abstract Integer getUniqueCount();
@Metric(order = 4, value = "False count") public ParameterizableMetric getFalseCount() { return new ParameterizableMetric() { @Override public Number getValue(final String parameter) { return _columnStatisticsCrosstab .where(BooleanAnalyzer.DIMENSION_MEASURE, BooleanAnalyzer.MEASURE_FALSE_COUNT) .where(BooleanAnalyzer.DIMENSION_COLUMN, parameter).safeGet(0); } @Override public Collection<String> getParameterSuggestions() { return getColumnNameSuggestions(); } }; }
@Metric(order = 2, value = "Null count") public ParameterizableMetric getNullCount() { return new ParameterizableMetric() { @Override public Number getValue(final String parameter) { return _columnStatisticsCrosstab .where(BooleanAnalyzer.DIMENSION_MEASURE, BooleanAnalyzer.MEASURE_NULL_COUNT) .where(BooleanAnalyzer.DIMENSION_COLUMN, parameter).safeGet(0); } @Override public Collection<String> getParameterSuggestions() { return getColumnNameSuggestions(); } }; }
@Metric(order = 3, value = "True count") public ParameterizableMetric getTrueCount() { return new ParameterizableMetric() { @Override public Number getValue(final String parameter) { return _columnStatisticsCrosstab .where(BooleanAnalyzer.DIMENSION_MEASURE, BooleanAnalyzer.MEASURE_TRUE_COUNT) .where(BooleanAnalyzer.DIMENSION_COLUMN, parameter).safeGet(0); } @Override public Collection<String> getParameterSuggestions() { return getColumnNameSuggestions(); } }; }
@Metric("Date gap count") public ParameterizableMetric getGapCount() { return new ParameterizableMetric() { @Override public Number getValue(final String parameter) { final SortedSet<TimeInterval> gapSet = _gaps.get(parameter); if (gapSet == null) { return 0; } return gapSet.size(); } @Override public Collection<String> getParameterSuggestions() { return _gaps.keySet(); } }; }