-package org.simantics.spreadsheet.graph;\r
-\r
-import java.util.Collections;\r
-import java.util.HashMap;\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.util.Optional;\r
-\r
-import org.simantics.spreadsheet.Range;\r
-import org.simantics.spreadsheet.resource.SpreadsheetResource;\r
-import org.simantics.spreadsheet.util.SpreadsheetUtils;\r
-\r
-import it.unimi.dsi.fastutil.objects.ObjectArrayList;\r
-\r
-public class SpreadsheetLine implements SpreadsheetElement<SpreadsheetCell, SpreadsheetLines>, SheetNode {\r
-\r
- private static final long serialVersionUID = -304574098117404663L;\r
- \r
- final private SpreadsheetLines parent;\r
- final public int row;\r
- int id;\r
- \r
- public ObjectArrayList<SpreadsheetCell> cells = new ObjectArrayList<>();\r
- \r
- public SpreadsheetLine(SpreadsheetLines parent, int row) {\r
- this.parent = parent;\r
- this.row = row;\r
- this.id = getEngine().getBook().getNewId(this);\r
-// getEngine().registerRow(row, this);\r
- }\r
- \r
- public int getId() {\r
- return id;\r
- }\r
- \r
- public SpreadsheetEngine getEngine() {\r
-// if(parent instanceof SpreadsheetEngine)\r
-// return (SpreadsheetEngine)parent;\r
- return ((SpreadsheetLines)parent).getEngine();\r
- }\r
-\r
- @Override\r
- public String getName() {\r
- return "Row"+row;\r
- }\r
-\r
- @Override\r
- public Map getChildren() {\r
- String rowName = ""+row;\r
- Map<String,SpreadsheetCell> result = new HashMap<>();\r
- for(int i=0;i<cells.size();i++) {\r
- SpreadsheetCell cell = cells.get(i);\r
- if(SpreadsheetCell.EMPTY == cell) continue;\r
- String name = "Row"+SpreadsheetUtils.columnName(i) + rowName;\r
- result.put(name, cell);\r
- }\r
- return result;\r
- }\r
-\r
- @Override\r
- public Map getProperties() {\r
- return Collections.singletonMap("typeURI", new SpreadsheetTypeNode(SpreadsheetResource.URIs.Line));\r
- }\r
- \r
- Object resolve(String[] parts, int index) {\r
- \r
- if(index == parts.length) return this;\r
- \r
- Range r = SpreadsheetUtils.decodeCellAbsolute(parts[index]);\r
- return cells.get(r.startColumn);\r
- \r
- }\r
-\r
- public void accept(SpreadsheetVisitor v) {\r
- v.visit(this);\r
- }\r
- \r
- public String getPath() {\r
- return ((SpreadsheetLines)parent).getPath() + "/" + getName();\r
- }\r
-\r
- @Override\r
- public Optional<SpreadsheetLines> getParent() {\r
- return Optional.of(parent);\r
- }\r
-\r
- @Override\r
- public List<SpreadsheetCell> getSpreadsheetChildren() {\r
- return cells;\r
- }\r
-\r
- @Override\r
- public void remove(SpreadsheetCell child) {\r
- \r
- }\r
-\r
- @Override\r
- public int hashCode() {\r
- final int prime = 31;\r
- int result = 1;\r
- result = prime * result + ((parent == null) ? 0 : parent.hashCode());\r
- result = prime * result + row;\r
- return result;\r
- }\r
-\r
- @Override\r
- public boolean equals(Object obj) {\r
- if (this == obj)\r
- return true;\r
- if (obj == null)\r
- return false;\r
- if (getClass() != obj.getClass())\r
- return false;\r
- SpreadsheetLine other = (SpreadsheetLine) obj;\r
- if (parent == null) {\r
- if (other.parent != null)\r
- return false;\r
- } else if (!parent.equals(other.parent))\r
- return false;\r
- if (row != other.row)\r
- return false;\r
- return true;\r
- }\r
-\r
-}\r
+package org.simantics.spreadsheet.graph;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+import org.simantics.spreadsheet.Range;
+import org.simantics.spreadsheet.resource.SpreadsheetResource;
+import org.simantics.spreadsheet.util.SpreadsheetUtils;
+
+import it.unimi.dsi.fastutil.objects.ObjectArrayList;
+
+public class SpreadsheetLine implements SpreadsheetElement<SpreadsheetCell, SpreadsheetLines>, SheetNode {
+
+ private static final long serialVersionUID = -304574098117404663L;
+
+ final private SpreadsheetLines parent;
+ final public int row;
+ int id;
+
+ public ObjectArrayList<SpreadsheetCell> cells = new ObjectArrayList<>();
+
+ public SpreadsheetLine(SpreadsheetLines parent, int row) {
+ this.parent = parent;
+ this.row = row;
+ this.id = getEngine().getBook().getNewId(this);
+// getEngine().registerRow(row, this);
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public SpreadsheetEngine getEngine() {
+// if(parent instanceof SpreadsheetEngine)
+// return (SpreadsheetEngine)parent;
+ return ((SpreadsheetLines)parent).getEngine();
+ }
+
+ @Override
+ public String getName() {
+ return "Row"+row;
+ }
+
+ @Override
+ public Map getChildren() {
+ String rowName = ""+row;
+ Map<String,SpreadsheetCell> result = new HashMap<>();
+ for(int i=0;i<cells.size();i++) {
+ SpreadsheetCell cell = cells.get(i);
+ if(SpreadsheetCell.EMPTY == cell) continue;
+ String name = "Row"+SpreadsheetUtils.columnName(i) + rowName;
+ result.put(name, cell);
+ }
+ return result;
+ }
+
+ @Override
+ public Map getProperties() {
+ return Collections.singletonMap("typeURI", new SpreadsheetTypeNode(SpreadsheetResource.URIs.Line));
+ }
+
+ Object resolve(String[] parts, int index) {
+
+ if(index == parts.length) return this;
+
+ Range r = SpreadsheetUtils.decodeCellAbsolute(parts[index]);
+ return cells.get(r.startColumn);
+
+ }
+
+ public void accept(SpreadsheetVisitor v) {
+ v.visit(this);
+ }
+
+ public String getPath() {
+ return ((SpreadsheetLines)parent).getPath() + "/" + getName();
+ }
+
+ @Override
+ public Optional<SpreadsheetLines> getParent() {
+ return Optional.of(parent);
+ }
+
+ @Override
+ public List<SpreadsheetCell> getSpreadsheetChildren() {
+ return cells;
+ }
+
+ @Override
+ public void remove(SpreadsheetCell child) {
+
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((parent == null) ? 0 : parent.hashCode());
+ result = prime * result + row;
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ SpreadsheetLine other = (SpreadsheetLine) obj;
+ if (parent == null) {
+ if (other.parent != null)
+ return false;
+ } else if (!parent.equals(other.parent))
+ return false;
+ if (row != other.row)
+ return false;
+ return true;
+ }
+
+}