/*=============================================================================# # Copyright (c) 2010-2016 Stephan Wahlbrink (WalWare.de) and others. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Stephan Wahlbrink - initial API and implementation #=============================================================================*/ package de.walware.statet.r.internal.ui.dataeditor; import java.util.Collections; import java.util.List; import de.walware.jcommons.collections.ImCollections; import de.walware.ecommons.ts.ITool; import de.walware.rj.data.RObject; import de.walware.statet.r.core.model.RElementName; import de.walware.statet.r.ui.dataeditor.IRDataTableVariable; import de.walware.statet.r.ui.dataeditor.RDataTableColumn; public final class RDataTableContentDescription { private static final IRDataTableVariable[] NO_COLUMNS_ARRAY= new IRDataTableVariable[0]; private final RElementName fElementName; private final RObject fStruct; private final String fLabel; private final ITool fRHandle; private List<RDataTableColumn> fColumnHeaderRows= Collections.emptyList(); private List<RDataTableColumn> fRowHeaderColumns= Collections.emptyList(); private List<RDataTableColumn> fDataColumns= Collections.emptyList(); private IRDataTableVariable[] fDataVariables= NO_COLUMNS_ARRAY; private RDataFormatter fDefaultDataFormat; public RDataTableContentDescription(final RElementName elementName, final RObject struct, final ITool rHandle) { if (elementName == null) { throw new NullPointerException("elementName"); } if (struct == null) { throw new NullPointerException("struct"); } this.fElementName= elementName; this.fStruct= struct; this.fLabel= elementName.getDisplayName(); this.fRHandle= rHandle; } public RElementName getElementName() { return this.fElementName; } public RObject getRElementStruct() { return this.fStruct; } public String getLabel() { return this.fLabel; } public ITool getRHandle() { return this.fRHandle; } void setColumnHeaderRows(final RDataTableColumn... dataColumns) { this.fColumnHeaderRows= ImCollections.newList(dataColumns); } void setRowHeaderColumns(final RDataTableColumn... dataColumns) { this.fRowHeaderColumns= ImCollections.newList(dataColumns); } void setDataColumns(final RDataTableColumn... dataColumns) { this.fDataColumns= ImCollections.newList(dataColumns); } void setVariables(final IRDataTableVariable... variables) { this.fDataVariables= variables; } void setDefaultDataFormat(final RDataFormatter format) { this.fDefaultDataFormat= format; } public List<RDataTableColumn> getColumnHeaderRows() { return this.fColumnHeaderRows; } public List<RDataTableColumn> getRowHeaderColumns() { return this.fRowHeaderColumns; } public List<RDataTableColumn> getDataColumns() { return this.fDataColumns; } IRDataTableVariable[] getVariables() { return this.fDataVariables; } public RDataFormatter getDefaultDataFormat() { return this.fDefaultDataFormat; } @Override public int hashCode() { return 986986; } @Override public boolean equals(final Object obj) { return (obj instanceof RDataTableContentDescription); } }