/** * Constructor for sub-class to call. * * @param name Table name of the physical table * @param timeGrain Zoned time grain of the table * @param metricNames The Set of metric names on the table * @param dimensionConfigs Set of dimensions on the table as dimension configs * @param expectedStartDate The expected start date of the datasource the constructed table will represent. Null * indicates there is NO expected start date * @param expectedEndDate The expected end date of the datasource the constructed table will represent. Null * indicates there is NO expected end date */ protected PhysicalTableDefinition( TableName name, ZonedTimeGrain timeGrain, Set<FieldName> metricNames, Set<? extends DimensionConfig> dimensionConfigs, DateTime expectedStartDate, DateTime expectedEndDate ) { this.name = name; this.timeGrain = timeGrain; this.metricNames = ImmutableSet.copyOf(metricNames); this.dimensionConfigs = ImmutableSet.copyOf(dimensionConfigs); this.logicalToPhysicalNames = Collections.unmodifiableMap(buildLogicalToPhysicalNames(dimensionConfigs)); this.expectedStartDate = expectedStartDate; this.expectedEndDate = expectedEndDate; }