@Override public boolean apply(RealizationEntry input) { return input.getType() == type; } }));
@Override public boolean apply(@Nullable RealizationEntry input) { return input.getType() == type; } }));
@Override public boolean apply(RealizationEntry input) { return input.getType() == type && input.getRealization().equalsIgnoreCase(realization); } });
@Override public boolean apply(RealizationEntry input) { return input.getType() == type && input.getRealization().equalsIgnoreCase(realization); } });
private void checkSegmentOffset(List<RealizationEntry> realizationEntries) { List<SegmentRange> segmentRanges = Lists.newArrayList(); for (RealizationEntry entry : realizationEntries) { if (entry.getType() != RealizationType.CUBE) { throw new IllegalArgumentException("Wrong realization type: " + entry.getType() + ", only cube supported. "); } CubeInstance cubeInstance = cubeManager.getCube(entry.getRealization()); Segments<CubeSegment> segments = cubeInstance.getSegments(); for (CubeSegment segment : segments) { segmentRanges.add(segment.getSegRange()); } } if (segmentRanges.size() >= 2) { Collections.sort(segmentRanges); for (int i = 0; i < segmentRanges.size() - 1; i++) { if (segmentRanges.get(i).overlaps(segmentRanges.get(i + 1))) { throw new IllegalArgumentException("Segments has overlap, could not hybrid. First Segment Range: [" + segmentRanges.get(i).start.v + "," + segmentRanges.get(i).end.v + "], Second Segment Range: [" + segmentRanges.get(i + 1).start.v + "," + segmentRanges.get(i + 1).end.v + "]"); } } } } }
private IRealization getRealization(RealizationEntry realizationEntry) { return realizationRegistry.getRealization(realizationEntry.getType(), realizationEntry.getRealization()); }
private IRealization getRealization(RealizationEntry realizationEntry) { return realizationRegistry.getRealization(realizationEntry.getType(), realizationEntry.getRealization()); }
public List<HybridInstance> getHybridInstancesByChild(RealizationType type, String realizationName) { try (AutoLock l = lock.lockForRead()) { List<HybridInstance> result = Lists.newArrayList(); for (HybridInstance hybridInstance : hybridMap.values()) { for (RealizationEntry realizationEntry : hybridInstance.getRealizationEntries()) { if (realizationEntry.getType() == type && realizationEntry.getRealization().equalsIgnoreCase(realizationName)) { result.add(hybridInstance); } } } return result; } }
private List<CubeInstance> getCubeByHybrid(HybridInstance hybridInstance) { List<CubeInstance> cubeInstances = Lists.newArrayList(); List<RealizationEntry> realizationEntries = hybridInstance.getRealizationEntries(); for (RealizationEntry realizationEntry : realizationEntries) { String reName = realizationEntry.getRealization(); if (RealizationType.CUBE == realizationEntry.getType()) { CubeInstance cubeInstance = getCubeManager().getCube(reName); cubeInstances.add(cubeInstance); } else if (RealizationType.HYBRID == realizationEntry.getType()) { HybridInstance innerHybridInstance = getHybridManager().getHybridInstance(reName); cubeInstances.addAll(getCubeByHybrid(innerHybridInstance)); } } return cubeInstances; }
public List<ProjectInstance> findProjects(RealizationType type, String realizationName) { try (AutoLock lock = prjMapLock.lockForWrite()) { List<ProjectInstance> result = Lists.newArrayList(); for (ProjectInstance prj : projectMap.values()) { for (RealizationEntry entry : prj.getRealizationEntries()) { if (entry.getType().equals(type) && entry.getRealization().equals(realizationName)) { result.add(prj); break; } } } return result; } }
public List<CubeInstance> listAllCubes(String projectName) { ProjectManager projectManager = getProjectManager(); ProjectInstance project = projectManager.getProject(projectName); if (project == null) { return Collections.emptyList(); } ArrayList<CubeInstance> result = new ArrayList<CubeInstance>(); for (RealizationEntry projectDataModel : project.getRealizationEntries()) { if (projectDataModel.getType() == RealizationType.CUBE) { CubeInstance cube = getCubeManager().getCube(projectDataModel.getRealization()); if (cube != null) result.add(cube); else logger.error("Cube instance " + projectDataModel.getRealization() + " is failed to load"); } } return result; }
for (RealizationEntry entry : project.getRealizationEntries()) { String realName = entry.getRealization(); IRealization realInstance = getRealization(config, realName, entry.getType()); String factTableForEntry = getRootFactTableForRealization(realInstance); if (factTableForEntry != null) {
List<IRealization> realizationList = Lists.newArrayList(); for (int i = 0; i < realizationEntries.size(); i++) { IRealization realization = registry.getRealization(realizationEntries.get(i).getType(), realizationEntries.get(i).getRealization()); if (realization == null) { logger.error("Realization '" + realizationEntries.get(i) + " is not found, remove from Hybrid '" + this.getName() + "'");
IRealization realization = registry.getRealization(entry.getType(), entry.getRealization()); if (realization != null) { projectCache.realizations.add(realization);
protected boolean isCubeInProject(String projectName, CubeInstance target) { ProjectManager projectManager = getProjectManager(); ProjectInstance project = projectManager.getProject(projectName); if (project == null) { return false; } for (RealizationEntry projectDataModel : project.getRealizationEntries()) { if (projectDataModel.getType() == RealizationType.CUBE) { CubeInstance cube = getCubeManager().getCube(projectDataModel.getRealization()); if (cube == null) { logger.error("Project " + projectName + " contains realization " + projectDataModel.getRealization() + " which is not found by CubeManager"); continue; } if (cube.equals(target)) { return true; } } } return false; }
public CubeInstance findLatestSnapshot(List<RealizationEntry> realizationEntries, String lookupTableName) { CubeInstance cube = null; if (realizationEntries.size() > 0) { long maxBuildTime = Long.MIN_VALUE; RealizationRegistry registry = RealizationRegistry.getInstance(config); for (RealizationEntry entry : realizationEntries) { IRealization realization = registry.getRealization(entry.getType(), entry.getRealization()); if (realization != null && realization.isReady() && realization instanceof CubeInstance) { if (realization.getModel().isLookupTable(lookupTableName)) { CubeInstance current = (CubeInstance) realization; CubeSegment segment = current.getLatestReadySegment(); if (segment != null) { long latestBuildTime = segment.getLastBuildTime(); if (latestBuildTime > maxBuildTime) { maxBuildTime = latestBuildTime; cube = current; } } } } } } return cube; } }
@Override public boolean apply(RealizationEntry input) { return input.getType() == type; } }));
@Override public boolean apply(@Nullable RealizationEntry input) { return input.getType() == type; } }));
@Override public boolean apply(RealizationEntry input) { return input.getType() == type && input.getRealization().equalsIgnoreCase(realization); } });
public List<ProjectInstance> findProjects(RealizationType type, String realizationName) { List<ProjectInstance> result = Lists.newArrayList(); for (ProjectInstance prj : projectMap.values()) { for (RealizationEntry entry : prj.getRealizationEntries()) { if (entry.getType().equals(type) && entry.getRealization().equalsIgnoreCase(realizationName)) { result.add(prj); break; } } } return result; }