|
Gephi Toolkit Javadoc | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.gephi.datalab.impl.AttributeColumnsControllerImpl
public class AttributeColumnsControllerImpl
Implementation of the AttributeColumnsController interface declared in the Data Laboratory API.
AttributeColumnsController| Constructor Summary | |
|---|---|
AttributeColumnsControllerImpl()
|
|
| Method Summary | |
|---|---|
AttributeColumn |
addAttributeColumn(AttributeTable table,
java.lang.String title,
AttributeType type)
Adds a new column to the specified table with the given title and type of column. |
java.util.Map<java.lang.Object,java.lang.Integer> |
calculateColumnValuesFrequencies(AttributeTable table,
AttributeColumn column)
Calculates the absolute frequency of appearance of each value of the given column and returns a Map containing each different value mapped to its frequency of appearance. |
boolean |
canChangeColumnData(AttributeColumn column)
Indicates if the Data Laboratory API behaviour allows to change a value of the given column of a table. |
boolean |
canClearColumnData(AttributeColumn column)
Indicates if the Data Laboratory API behaviour allows to set as null a value of the given column of a table. |
boolean |
canDeleteColumn(AttributeColumn column)
Indicates if the Data Laboratory API behaviour allows to delete the given column of a table. |
void |
clearColumnData(AttributeTable table,
AttributeColumn column)
Clears all rows data for a given column of a table (nodes table or edges table) |
void |
clearEdgeData(Edge edge,
AttributeColumn[] columnsToClear)
Clears all edge attributes except computed attributes and id. |
void |
clearEdgesData(Edge[] edges,
AttributeColumn[] columnsToClear)
Clears all the edges attributes except computed attributes and id, checking first that the edges are in the graph. |
void |
clearNodeData(Node node,
AttributeColumn[] columnsToClear)
Clears all node attributes except computed attributes and id, checking first that the node is in the graph. |
void |
clearNodesData(Node[] nodes,
AttributeColumn[] columnsToClear)
Clears all the nodes attributes except computed attributes and id. |
void |
clearRowData(Attributes row,
AttributeColumn[] columnsToClear)
Clears row attributes except computed attributes and id if node/edge row. |
void |
copyColumnDataToOtherColumn(AttributeTable table,
AttributeColumn sourceColumn,
AttributeColumn targetColumn)
Copies all row values of a column to another column. |
void |
copyEdgeDataToOtherEdges(Edge edge,
Edge[] otherEdges,
AttributeColumn[] columnsToCopy)
Copies attributes data of the given edge to the other rows except computed attributes and id. |
void |
copyNodeDataToOtherNodes(Node node,
Node[] otherNodes,
AttributeColumn[] columnsToCopy)
Copies attributes data of the given node to the other rows except computed attributes and id. |
void |
copyRowDataToOtherRows(Attributes row,
Attributes[] otherRows,
AttributeColumn[] columnsToCopy)
Copies attributes data of the given row to the other rows except computed attributes and id if node/edge. |
AttributeColumn |
createBooleanMatchesColumn(AttributeTable table,
AttributeColumn column,
java.lang.String newColumnTitle,
java.util.regex.Pattern pattern)
Creates a new BOOLEAN column from the given column and regular expression
filling it with boolean values that indicate if each of the old column values match the regular expression. |
AttributeColumn |
createFoundGroupsListColumn(AttributeTable table,
AttributeColumn column,
java.lang.String newColumnTitle,
java.util.regex.Pattern pattern)
Creates a new LIST_STRING column from the given column and regular expression with values that are
the list of matching groups for the given regular expression for each row. |
void |
deleteAttributeColumn(AttributeTable table,
AttributeColumn column)
Deletes the specified column from a table if the table has the column and data laboratory behaviour allows to delete it (see canDeleteColumn method). |
java.util.List<java.util.List<Node>> |
detectNodeDuplicatesByColumn(AttributeColumn column,
boolean caseSensitive)
Finds and returns nodes duplicates based on the values of a given column of nodes table |
AttributeColumn |
duplicateColumn(AttributeTable table,
AttributeColumn column,
java.lang.String title,
AttributeType type)
Duplicates a given column of a table and copies al row values. |
void |
fillColumnWithValue(AttributeTable table,
AttributeColumn column,
java.lang.String value)
Fills the data values of a given column of a table with a value as a String, parsing it for the AttributeType of the column. |
void |
fillEdgesColumnWithValue(Edge[] edges,
AttributeColumn column,
java.lang.String value)
Fills the data values of a given column of the indicated edges with a value as a String, parsing it for the AttributeType of the column. |
void |
fillNodesColumnWithValue(Node[] nodes,
AttributeColumn column,
java.lang.String value)
Fills the data values of a given column of the indicated nodes with a value as a String, parsing it for the AttributeType of the column. |
java.lang.Number[] |
getColumnNumbers(AttributeTable table,
AttributeColumn column)
Prepares an array with all not null numbers of all the rows of a given column. |
java.math.BigDecimal[] |
getNumberOrNumberListColumnStatistics(AttributeTable table,
AttributeColumn column)
Calculates all statistics at once from a number/number list column using MathUtils class. |
java.lang.Number[] |
getRowNumbers(Attributes row,
AttributeColumn[] columns)
Prepares an array with all not null numbers of a row using only the given columns. |
java.lang.Number[] |
getRowsColumnNumbers(Attributes[] rows,
AttributeColumn column)
Prepares an array only with all not null numbers the indicated rows of a given column. |
Attributes[] |
getTableAttributeRows(AttributeTable table)
Returns all rows of a given table (node or edges table). |
int |
getTableRowsCount(AttributeTable table)
Counts the number of rows of a table (nodes or edges table) and returns the result. |
void |
importCSVToEdgesTable(java.io.File file,
java.lang.Character separator,
java.nio.charset.Charset charset,
java.lang.String[] columnNames,
AttributeType[] columnTypes,
boolean createNewNodes)
Method for importing csv data to edges table. |
void |
importCSVToNodesTable(java.io.File file,
java.lang.Character separator,
java.nio.charset.Charset charset,
java.lang.String[] columnNames,
AttributeType[] columnTypes,
boolean assignNewNodeIds)
Method for importing CSV file data to nodes table. |
boolean |
isEdgeTable(AttributeTable table)
Checks if the given table is edges table. |
boolean |
isNodeTable(AttributeTable table)
Checks if the given table is nodes table. |
void |
mergeRowsValues(AttributeTable table,
AttributeRowsMergeStrategy[] mergeStrategies,
Attributes[] rows,
Attributes selectedRow,
Attributes resultRow)
Merges the given rows values to the given result row using one merge strategy for each column of the table. |
void |
negateBooleanColumn(AttributeTable table,
AttributeColumn column)
Negates not null values of a given BOOLEAN or LIST_BOOLEANcolumn. |
boolean |
setAttributeValue(java.lang.Object value,
Attributes row,
AttributeColumn column)
Sets a value to the given row,column pair (cell). |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public AttributeColumnsControllerImpl()
| Method Detail |
|---|
public boolean setAttributeValue(java.lang.Object value,
Attributes row,
AttributeColumn column)
AttributeColumnsControllerSets a value to the given row,column pair (cell). If the class of the value is not the column type class,
it will try to parse the toString representation of the value.
Takes care to avoid parsing exceptions of the target column type.
Also, this will not set a null value to a column that can't have null values (see canClearColumnData method) if the given object is null or the parsing fails.
setAttributeValue in interface AttributeColumnsControllervalue - Value to set, can be nullrow - Rowcolumn - Column
public AttributeColumn addAttributeColumn(AttributeTable table,
java.lang.String title,
AttributeType type)
AttributeColumnsControllerAdds a new column to the specified table with the given title and type of column.
The title for the new column can't be repeated in the table, null or an empty string.
.The id of the column will be set to the same as the title, but if the first TimeInterval column of the table is created it will be given the default dynamic time interval id to be able to use dynamic filters.
The AttributeOrigin of the column will be set to DATA.
Default column value will be set to null.
addAttributeColumn in interface AttributeColumnsControllertable - Table to add the columntitle - Title for the new column, can't be repeated in the table, null or empty stringtype - Type for the new column
public void deleteAttributeColumn(AttributeTable table,
AttributeColumn column)
AttributeColumnsControllerDeletes the specified column from a table if the table has the column and data laboratory behaviour allows to delete it (see canDeleteColumn method).
deleteAttributeColumn in interface AttributeColumnsControllertable - Table to delete the columncolumn - Column to delete
public AttributeColumn duplicateColumn(AttributeTable table,
AttributeColumn column,
java.lang.String title,
AttributeType type)
AttributeColumnsControllerDuplicates a given column of a table and copies al row values.
If the AttributeType for the new column is different from the old column type, it will try to parse each value. If it is not possible, the value will be set to null.
The title for the new column can't be repeated in the table, null or an empty string.
.The id of the column will be set to the title.
The AttributeOrigin of the column will be set to DATA.
Default column value will be set to null.
duplicateColumn in interface AttributeColumnsControllertable - Table of the column to duplicatecolumn - Column to duplicatetitle - Title for the new columntype - AttributeType for the new column
public void copyColumnDataToOtherColumn(AttributeTable table,
AttributeColumn sourceColumn,
AttributeColumn targetColumn)
AttributeColumnsControllerCopies all row values of a column to another column.
If the AttributeType for the target is different from the source column type, it will try to parse each value. If it is not possible, the value will be set to null.
Source and target columns must be different.
copyColumnDataToOtherColumn in interface AttributeColumnsControllertable - Table of the columnssourceColumn - Source columntargetColumn - Target column
public void fillColumnWithValue(AttributeTable table,
AttributeColumn column,
java.lang.String value)
AttributeColumnsControllerFills the data values of a given column of a table with a value as a String,
parsing it for the AttributeType of the column. If it is not possible to parse,
the value will be set to null.
fillColumnWithValue in interface AttributeColumnsControllertable - Table of the columncolumn - Column to fillvalue - String representation of the value for each row of the column
public void fillNodesColumnWithValue(Node[] nodes,
AttributeColumn column,
java.lang.String value)
AttributeColumnsControllerFills the data values of a given column of the indicated nodes with a value as a String,
parsing it for the AttributeType of the column. If it is not possible to parse,
the value will be set to null.
fillNodesColumnWithValue in interface AttributeColumnsControllernodes - Nodes to fillcolumn - Column to fillvalue - String representation of the value for the column for each node
public void fillEdgesColumnWithValue(Edge[] edges,
AttributeColumn column,
java.lang.String value)
AttributeColumnsControllerFills the data values of a given column of the indicated edges with a value as a String,
parsing it for the AttributeType of the column. If it is not possible to parse,
the value will be set to null.
fillEdgesColumnWithValue in interface AttributeColumnsControlleredges - Edges to fillcolumn - Column to fillvalue - String representation of the value for the column for each edge
public void clearColumnData(AttributeTable table,
AttributeColumn column)
AttributeColumnsControllerClears all rows data for a given column of a table (nodes table or edges table)
clearColumnData in interface AttributeColumnsControllertable - Table to clear column datacolumn - Column to clear data
public java.util.Map<java.lang.Object,java.lang.Integer> calculateColumnValuesFrequencies(AttributeTable table,
AttributeColumn column)
AttributeColumnsControllerCalculates the absolute frequency of appearance of each value of the given column and returns a Map containing each different value mapped to its frequency of appearance.
calculateColumnValuesFrequencies in interface AttributeColumnsControllertable - Table of the columncolumn - Column to calculate values frequencies
public AttributeColumn createBooleanMatchesColumn(AttributeTable table,
AttributeColumn column,
java.lang.String newColumnTitle,
java.util.regex.Pattern pattern)
AttributeColumnsControllerCreates a new BOOLEAN column from the given column and regular expression
filling it with boolean values that indicate if each of the old column values match the regular expression.
Title for the new column can't be repeated in the table, null or empty.
createBooleanMatchesColumn in interface AttributeColumnsControllertable - Table of the column to matchcolumn - Column to matchnewColumnTitle - Title for the new boolean columnpattern - Regular expression to match
public void negateBooleanColumn(AttributeTable table,
AttributeColumn column)
AttributeColumnsControllerNegates not null values of a given BOOLEAN or LIST_BOOLEANcolumn.
Throws IllegalArgumentException if the column does not have BOOLEAN or LIST_BOOLEAN AttributeType.
negateBooleanColumn in interface AttributeColumnsControllertable - Table of the column to negatecolumn - Boolean column to negate
public AttributeColumn createFoundGroupsListColumn(AttributeTable table,
AttributeColumn column,
java.lang.String newColumnTitle,
java.util.regex.Pattern pattern)
AttributeColumnsControllerCreates a new LIST_STRING column from the given column and regular expression with values that are
the list of matching groups for the given regular expression for each row.
The title for the new column can't be repeated in the table, null or an empty string.
.
createFoundGroupsListColumn in interface AttributeColumnsControllertable - Table of the column to matchcolumn - Column to matchnewColumnTitle - Title for the new boolean columnpattern - Regular expression to match
public void clearNodeData(Node node,
AttributeColumn[] columnsToClear)
AttributeColumnsControllerClears all node attributes except computed attributes and id, checking first that the node is in the graph.
Columns to clear can be specified, but id and computed columns will not be cleared.
clearNodeData in interface AttributeColumnsControllernode - Node to clear datacolumnsToClear - Columns of the node to clear. All columns will be cleared if it is null
public void clearNodesData(Node[] nodes,
AttributeColumn[] columnsToClear)
AttributeColumnsControllerClears all the nodes attributes except computed attributes and id.
Columns to clear can be specified, but id and computed columns will not be cleared.
clearNodesData in interface AttributeColumnsControllernodes - Array of nodes to clear datacolumnsToClear - Columns of the nodes to clear. All columns will be cleared if it is null
public void clearEdgeData(Edge edge,
AttributeColumn[] columnsToClear)
AttributeColumnsControllerClears all edge attributes except computed attributes and id.
Columns to clear can be specified, but id and computed columns will not be cleared.
clearEdgeData in interface AttributeColumnsControlleredge - Edge to clear datacolumnsToClear - Columns of the edge to clear. All columns will be cleared if it is null
public void clearEdgesData(Edge[] edges,
AttributeColumn[] columnsToClear)
AttributeColumnsControllerClears all the edges attributes except computed attributes and id, checking first that the edges are in the graph.
Columns to clear can be specified, but id and computed columns will not be cleared.
clearEdgesData in interface AttributeColumnsControlleredges - Array of edges to clear datacolumnsToClear - Columns of the edges to clear. All columns will be cleared if it is null
public void clearRowData(Attributes row,
AttributeColumn[] columnsToClear)
AttributeColumnsControllerClears row attributes except computed attributes and id if node/edge row.
Columns to clear can be specified, but id of node/edge and computed columns will not be cleared.
clearRowData in interface AttributeColumnsControllerrow - Array of rows to clear datacolumnsToClear - Columns of the row to clear. All columns will be cleared if it is null
public void copyNodeDataToOtherNodes(Node node,
Node[] otherNodes,
AttributeColumn[] columnsToCopy)
AttributeColumnsControllerCopies attributes data of the given node to the other rows except computed attributes and id.
Columns to copy can be specified, but id node and computed columns will not be copied.
copyNodeDataToOtherNodes in interface AttributeColumnsControllernode - Node to copy data fromotherNodes - Nodes to copy data tocolumnsToCopy - Columns of the node to copy. All columns will be copied if it is null
public void copyEdgeDataToOtherEdges(Edge edge,
Edge[] otherEdges,
AttributeColumn[] columnsToCopy)
AttributeColumnsControllerCopies attributes data of the given edge to the other rows except computed attributes and id.
Columns to copy can be specified, but id edge and computed columns will not be copied.
copyEdgeDataToOtherEdges in interface AttributeColumnsControlleredge - Edge to copy data fromotherEdges - Edges to copy data tocolumnsToCopy - Columns of the edge to copy. All columns will be copied if it is null
public void copyRowDataToOtherRows(Attributes row,
Attributes[] otherRows,
AttributeColumn[] columnsToCopy)
AttributeColumnsControllerCopies attributes data of the given row to the other rows except computed attributes and id if node/edge.
Columns to copy can be specified, but id of node/edge and computed columns will not be copied.
copyRowDataToOtherRows in interface AttributeColumnsControllerrow - Row to copy data fromotherRows - Rows to copy data tocolumnsToCopy - Columns of the row to copy. All columns will be copied if it is nullpublic Attributes[] getTableAttributeRows(AttributeTable table)
AttributeColumnsControllerReturns all rows of a given table (node or edges table).
Used for iterating through all attribute rows of a table
getTableAttributeRows in interface AttributeColumnsControllertable - Table to get attribute rows
public int getTableRowsCount(AttributeTable table)
AttributeColumnsControllerCounts the number of rows of a table (nodes or edges table) and returns the result.
Uses GraphElementsController getNodesCount and getEdgesCount to calculate the result.
getTableRowsCount in interface AttributeColumnsControllertablepublic boolean isNodeTable(AttributeTable table)
AttributeColumnsControllerChecks if the given table is nodes table.
isNodeTable in interface AttributeColumnsControllerpublic boolean isEdgeTable(AttributeTable table)
AttributeColumnsControllerChecks if the given table is edges table.
isEdgeTable in interface AttributeColumnsControllerpublic boolean canDeleteColumn(AttributeColumn column)
AttributeColumnsControllerIndicates if the Data Laboratory API behaviour allows to delete the given column of a table.
The behaviour is: Any column that does not have a AttributeOrigin of type PROPERTY can be deleted.
canDeleteColumn in interface AttributeColumnsControllercolumn - Column to check if it can be deleted
public boolean canChangeColumnData(AttributeColumn column)
AttributeColumnsControllerIndicates if the Data Laboratory API behaviour allows to change a value of the given column of a table.
The behaviour is: Only values of columns with AttributeOrigin of type DATA or a node/edge label and weight column can be changed. (but weight can't be null. see canClearColumnData method).
Also, columns with a DYNAMIC or TIME_INTERVAL AttributeType are not allowed to be changed since they are only used for dynamic attributes purposes.
canChangeColumnData in interface AttributeColumnsControllercolumn - Column to theck its values can be changed
public boolean canClearColumnData(AttributeColumn column)
AttributeColumnsControllerIndicates if the Data Laboratory API behaviour allows to set as null a value of the given column of a table.
The behaviour is: Only values of columns with AttributeOrigin of type DATA or a node/edge label column can be set to null. Edge weight can't be null
Also, columns with a DYNAMIC or TIME_INTERVAL AttributeType are not allowed to be cleared since they are only used for dynamic attributes purposes.
canClearColumnData in interface AttributeColumnsControllercolumn - Column to theck its values can be changed
public java.math.BigDecimal[] getNumberOrNumberListColumnStatistics(AttributeTable table,
AttributeColumn column)
AttributeColumnsControllerCalculates all statistics at once from a number/number list column using MathUtils class.
Returns an array of length=8 of BigDecimal numbers with the results in the following order:
The column can only be a number/number list column.
Otherwise, a IllegalArgumentException will be thrown.
getNumberOrNumberListColumnStatistics in interface AttributeColumnsControllertable - Table of the columncolumn - Column to get statistics
public java.lang.Number[] getColumnNumbers(AttributeTable table,
AttributeColumn column)
AttributeColumnsControllerPrepares an array with all not null numbers of all the rows of a given column.
The column can only be a number/number list column.
Otherwise, a IllegalArgumentException will be thrown.
getColumnNumbers in interface AttributeColumnsControllertable - Table of the column to get numberscolumn - Column to get numbers
public java.lang.Number[] getRowsColumnNumbers(Attributes[] rows,
AttributeColumn column)
AttributeColumnsControllerPrepares an array only with all not null numbers the indicated rows of a given column.
The column can only be a number/number list column.
Otherwise, a IllegalArgumentException will be thrown.
getRowsColumnNumbers in interface AttributeColumnsControllerrows - Rows to get numberscolumn - Column to get numbers
public java.lang.Number[] getRowNumbers(Attributes row,
AttributeColumn[] columns)
AttributeColumnsControllerPrepares an array with all not null numbers of a row using only the given columns.
The columns can only be number/dynamic number/number list columns (in any combination).
All numbers intervals of a dynamic number column will be used.
Otherwise, a IllegalArgumentException will be thrown.
getRowNumbers in interface AttributeColumnsControllerrow - Row to get numberscolumns - Columns of the row to use
public void importCSVToNodesTable(java.io.File file,
java.lang.Character separator,
java.nio.charset.Charset charset,
java.lang.String[] columnNames,
AttributeType[] columnTypes,
boolean assignNewNodeIds)
AttributeColumnsControllerMethod for importing CSV file data to nodes table.
Only special case is treating columns is id columns: first column found named 'id' (case insensitive) will be used as node id, others will be ignored.
No special column must be provided.
If a column name is not already in nodes table, it will be created with the corresponding columnType index.
If a node id already exists, depending on assignNewNodeIds, a new id will be assigned to it or instead, the already existing node attributes will be updated with the CSV data
importCSVToNodesTable in interface AttributeColumnsControllerfile - CSV fileseparator - Separator of values of the CSV filecharset - Charset of the CSV filecolumnNames - Names of the columns in the CSV file to usecolumnTypes - Types of the columns in the CSV file to use when creating columnsassignNewNodeIds - Indicates if nodes should be assigned new ids when the ids are already in nodes table or not provided.
public void importCSVToEdgesTable(java.io.File file,
java.lang.Character separator,
java.nio.charset.Charset charset,
java.lang.String[] columnNames,
AttributeType[] columnTypes,
boolean createNewNodes)
AttributeColumnsControllerMethod for importing csv data to edges table.
Column named 'Source' and 'Target' (case insensitive) should be provided. Any row that does not provide a source and target nodes ids will be ignored.
If no 'Type' (case insensitive) column is provided, all edges will be directed.
If an edge already exists and cannot be created, it will be ignored but the weight of the existing edge will be increased with each repetition.
Special cases are id, source, target and type columns:
importCSVToEdgesTable in interface AttributeColumnsControllerfile - CSV fileseparator - Separator of values of the CSV filecharset - Charset of the CSV filecolumnNames - Names of the columns in the CSV file to usecolumnTypes - Types of the columns in the CSV file to use when creating columnscreateNewNodes - Indicates if missing nodes should be created when an edge declares a source or target id not already existing
public void mergeRowsValues(AttributeTable table,
AttributeRowsMergeStrategy[] mergeStrategies,
Attributes[] rows,
Attributes selectedRow,
Attributes resultRow)
AttributeColumnsControllerMerges the given rows values to the given result row using one merge strategy for each column of the table.
The number of columns must be equal to the number of merge strategies provided
No parameters can be null except selectedRow (first row will be used in case selectedRow is null)
If any strategy is null, the value of the selectedRow will be used
mergeRowsValues in interface AttributeColumnsControllertable - Table of the rowsmergeStrategies - Strategies for each column of the tablerows - Rows to merge (at least 1)selectedRow - Main selected row or null (first row will be used in case selectedRow is null)resultRow - Already existing row to put the values on
public java.util.List<java.util.List<Node>> detectNodeDuplicatesByColumn(AttributeColumn column,
boolean caseSensitive)
AttributeColumnsControllerFinds and returns nodes duplicates based on the values of a given column of nodes table
A node is a duplicate of other if they have the same value (String representation of the values is used) in the given column.
This is useful to be used to automatically merge duplicated nodes
detectNodeDuplicatesByColumn in interface AttributeColumnsControllercolumn - Column to use values to detect duplicatescaseSensitive - Case insensitivity when comparing the column values
|
Gephi Toolkit Javadoc | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||