// Copyright 2012 Google Inc. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package com.google.collide.client.codeunderstanding; import com.google.collide.dto.CodeBlock; import com.google.collide.dto.CodeGraph; import com.google.collide.dto.CodeReferences; import com.google.collide.json.shared.JsonArray; import com.google.collide.json.shared.JsonStringMap; /** * A value object that holds all valuable parts of Cube response. */ public class CubeData { /** * Predefined instance that holds {@code null}'s. */ public static final CubeData EMPTY_DATA = new CubeData(null, null, null, null, null, null); private final String filePath; private final CodeBlock fileTree; private final CodeGraph fullGraph; private final CodeGraph libsSubgraph; private final CodeGraph workspaceTree; private final CodeReferences fileReferences; public CubeData(String filePath, CodeBlock fileTree, CodeGraph fullGraph, CodeGraph libsSubgraph, CodeGraph workspaceTree, CodeReferences fileReferences) { this.filePath = filePath; this.fileTree = fileTree; this.fullGraph = fullGraph; this.libsSubgraph = libsSubgraph; this.workspaceTree = workspaceTree; this.fileReferences = fileReferences; } public String getFilePath() { return filePath; } public CodeBlock getFileTree() { return fileTree; } public CodeGraph getFullGraph() { return fullGraph; } public CodeGraph getLibsSubgraph() { return libsSubgraph; } public CodeGraph getWorkspaceTree() { return workspaceTree; } public CodeReferences getFileReferences() { return fileReferences; } @Override public String toString() { return "CubeData{" + "\n filePath='" + filePath + '\'' + ",\n fileTree=" + objectInfo(fileTree) + ",\n fullGraph=" + objectInfo(fullGraph) + ",\n libsSubgraph=" + objectInfo(libsSubgraph) + ",\n workspaceTree=" + objectInfo(workspaceTree) + ",\n fileReferences=" + objectInfo(fileReferences) + "\n}"; } private static String objectInfo(Object object) { return object == null ? null : "object"; } private static String objectInfo(CodeReferences object) { return (object == null) ? null : "CodeReferences{" + "references=" + objectInfo(object.getReferences()) + "}"; } private static String objectInfo(CodeGraph object) { return (object == null) ? null : "CodeGraph{" + "inheritanceAssociations=" + objectInfo(object.getInheritanceAssociations()) + ", typeAssociations=" + objectInfo(object.getTypeAssociations()) + ", importAssociations=" + objectInfo(object.getImportAssociations()) + ", codeBlockMap=" + objectInfo(object.getCodeBlockMap()) + "}"; } private static String objectInfo(JsonArray object) { return object == null ? null : "JsonArray{size=" + object.size() + "}"; } private static String objectInfo(JsonStringMap object) { return object == null ? null : "JsonStringMap{size=" + object.size() + "}"; } }