/** * Get the URI for the given statement. * * @param statement * the statement for which to create a URI * @return the URI */ public static String getStatementUri(Statement statement) { int i = statement.getStatementId().indexOf('$') + 1; return PREFIX_WIKIDATA_STATEMENT + statement.getSubject().getId() + "-" + statement.getStatementId().substring(i); }
@Override public StatementGroup withStatement(Statement statement) { String statementId = statement.getStatementId(); boolean statementAdded = false; List<Statement> newStatements = new ArrayList<>(this.statements); if (!statementId.isEmpty()) { for(int i = 0; i != newStatements.size(); i++) { String currentStatementId = newStatements.get(i).getStatementId(); if (currentStatementId.equals(statementId)) { newStatements.set(i, statement); statementAdded = true; } } } if (!statementAdded) { newStatements.add(statement); } return new StatementGroupImpl(newStatements); } }
@Override public StatementGroup withStatement(Statement statement) { String statementId = statement.getStatementId(); boolean statementAdded = false; List<Statement> newStatements = new ArrayList<>(this.statements); if (!statementId.isEmpty()) { for(int i = 0; i != newStatements.size(); i++) { String currentStatementId = newStatements.get(i).getStatementId(); if (currentStatementId.equals(statementId)) { newStatements.set(i, statement); statementAdded = true; } } } if (!statementAdded) { newStatements.add(statement); } return new StatementGroupImpl(newStatements); } }
/** * Get the URI for the given statement. * * @param statement * the statement for which to create a URI * @return the URI */ public static String getStatementUri(Statement statement) { int i = statement.getStatementId().indexOf('$') + 1; return statement.getClaim().getSubject().getIri() + "S" + statement.getStatementId().substring(i); }
/** * Removes statement ids from a collection of statement groups. * @param statementIds * @param claims * @return */ protected static Map<String, List<Statement>> removeStatements(Set<String> statementIds, Map<String, List<Statement>> claims) { Map<String, List<Statement>> newClaims = new HashMap<>(claims.size()); for(Entry<String, List<Statement>> entry : claims.entrySet()) { List<Statement> filteredStatements = new ArrayList<>(); for(Statement s : entry.getValue()) { if(!statementIds.contains(s.getStatementId())) { filteredStatements.add(s); } } if(!filteredStatements.isEmpty()) { newClaims.put(entry.getKey(), filteredStatements); } } return newClaims; } }
/** * Removes statement ids from a collection of statement groups. * @param statementIds * @param claims * @return */ protected static Map<String, List<Statement>> removeStatements(Set<String> statementIds, Map<String, List<Statement>> claims) { Map<String, List<Statement>> newClaims = new HashMap<>(claims.size()); for(Entry<String, List<Statement>> entry : claims.entrySet()) { List<Statement> filteredStatements = new ArrayList<>(); for(Statement s : entry.getValue()) { if(!statementIds.contains(s.getStatementId())) { filteredStatements.add(s); } } if(!filteredStatements.isEmpty()) { newClaims.put(entry.getKey(), filteredStatements); } } return newClaims; } }
boolean statementReplaced = false; for(Statement existingStatement : newGroups.get(pid)) { if(existingStatement.getStatementId().equals(statement.getStatementId()) && !existingStatement.getStatementId().isEmpty()) { statementReplaced = true; newGroup.add(statement);
boolean statementReplaced = false; for(Statement existingStatement : newGroups.get(pid)) { if(existingStatement.getStatementId().equals(statement.getStatementId()) && !existingStatement.getStatementId().isEmpty()) { statementReplaced = true; newGroup.add(statement);
/** * Returns a human-readable string representation of the given object. * * @see java.lang.Object#toString() * @param o * the object to represent as string * @return a string representation of the object */ public static String toString(Statement o) { StringBuilder sb = new StringBuilder(); sb.append("[ID ").append(o.getStatementId()).append("] "); sb.append(o.getSubject()).append(": "); sb.append(o.getMainSnak().toString()).append("\n"); for (SnakGroup s : o.getQualifiers()) { sb.append(toString(s)); } if (o.getRank() != StatementRank.NORMAL) { sb.append(" Rank: ").append(o.getRank()).append("\n"); } for (Reference r : o.getReferences()) { sb.append(toString(r)); } return sb.toString(); }
/** * Returns a human-readable string representation of the given object. * * @see java.lang.Object#toString() * @param o * the object to represent as string * @return a string representation of the object */ public static String toString(Statement o) { StringBuilder sb = new StringBuilder(); sb.append("[ID ").append(o.getStatementId()).append("] "); sb.append(o.getSubject()).append(": "); sb.append(o.getMainSnak().toString()).append("\n"); for (SnakGroup s : o.getQualifiers()) { sb.append(toString(s)); } if (o.getRank() != StatementRank.NORMAL) { sb.append(" Rank: ").append(o.getRank()).append("\n"); } for (Reference r : o.getReferences()) { sb.append(toString(r)); } return sb.toString(); }
/** * Returns a hash code for the given object. * * @see java.lang.Object#hashCode() * @param o * the object to create a hash for * @return the hash code of the object */ public static int hashCode(Statement o) { int result; result = o.getSubject().hashCode(); result = prime * result + o.getMainSnak().hashCode(); result = prime * result + o.getQualifiers().hashCode(); result = prime * result + o.getReferences().hashCode(); result = prime * result + o.getRank().hashCode(); result = prime * result + o.getStatementId().hashCode(); return result; }
/** * Returns a hash code for the given object. * * @see java.lang.Object#hashCode() * @param o * the object to create a hash for * @return the hash code of the object */ public static int hashCode(Statement o) { int result; result = o.getSubject().hashCode(); result = prime * result + o.getMainSnak().hashCode(); result = prime * result + o.getQualifiers().hashCode(); result = prime * result + o.getReferences().hashCode(); result = prime * result + o.getRank().hashCode(); result = prime * result + o.getStatementId().hashCode(); return result; }
/** * Marks a given list of statements for insertion into the current document. * Inserted statements can have an id if they should update an existing * statement, or use an empty string as id if they should be added. The * method removes duplicates and avoids unnecessary modifications by * checking the current content of the given document before marking * statements for being written. * * @param currentDocument * the document with the current statements * @param addStatements * the list of new statements to be added */ protected void markStatementsForInsertion( StatementDocument currentDocument, List<Statement> addStatements) { for (Statement statement : addStatements) { addStatement(statement, true); } for (StatementGroup sg : currentDocument.getStatementGroups()) { if (this.toKeep.containsKey(sg.getProperty())) { for (Statement statement : sg) { if (!this.toDelete.contains(statement.getStatementId())) { addStatement(statement, false); } } } } }
/** * Marks a given list of statements for insertion into the current document. * Inserted statements can have an id if they should update an existing * statement, or use an empty string as id if they should be added. The * method removes duplicates and avoids unnecessary modifications by * checking the current content of the given document before marking * statements for being written. * * @param currentDocument * the document with the current statements * @param addStatements * the list of new statements to be added */ protected void markStatementsForInsertion( StatementDocument currentDocument, List<Statement> addStatements) { for (Statement statement : addStatements) { addStatement(statement, true); } for (StatementGroup sg : currentDocument.getStatementGroups()) { if (this.toKeep.containsKey(sg.getProperty())) { for (Statement statement : sg) { if (!this.toDelete.contains(statement.getStatementId())) { addStatement(statement, false); } } } } }
/** * Returns true if the parameters are two {@link Statement} objects with * exactly the same data. It does not matter if they are different * implementations of the interface as long as their content is the same. * * @param o1 * the first object to compare * @param o2 * the second object to compare * @return true if both objects are equal */ public static boolean equalsStatement(Statement o1, Object o2) { if (o2 == null) { return false; } if (o2 == o1) { return true; } if (!(o2 instanceof Statement)) { return false; } Statement other = (Statement) o2; return o1.getSubject().equals(other.getSubject()) && o1.getMainSnak().equals(other.getMainSnak()) && o1.getQualifiers().equals(other.getQualifiers()) && o1.getReferences().equals(other.getReferences()) && o1.getRank() == other.getRank() && o1.getStatementId().equals(other.getStatementId()); }
/** * Returns true if the parameters are two {@link Statement} objects with * exactly the same data. It does not matter if they are different * implementations of the interface as long as their content is the same. * * @param o1 * the first object to compare * @param o2 * the second object to compare * @return true if both objects are equal */ public static boolean equalsStatement(Statement o1, Object o2) { if (o2 == null) { return false; } if (o2 == o1) { return true; } if (!(o2 instanceof Statement)) { return false; } Statement other = (Statement) o2; return o1.getSubject().equals(other.getSubject()) && o1.getMainSnak().equals(other.getMainSnak()) && o1.getQualifiers().equals(other.getQualifiers()) && o1.getReferences().equals(other.getReferences()) && o1.getRank() == other.getRank() && o1.getStatementId().equals(other.getStatementId()); }
Statement statement = statements.get(0); if (statement.getStatementId() == null || statement.getStatementId().isEmpty()) { statement = statement.withStatementId(guidGenerator.freshStatementId(currentDocument.getEntityId().getId()));
String newStatementId = statement1.getStatementId(); if ("".equals(newStatementId)) { newStatementId = statement2.getStatementId();
/** * Copies a {@link Statement}. * * @param object * object to copy * @return copied object */ public Statement copy(Statement object) { return dataObjectFactory.getStatement( (EntityIdValue) visit(object.getSubject()), copy(object.getMainSnak()), copy(object.getQualifiers()), copyReferences(object.getReferences()), object.getRank(), object.getStatementId()); }
/** * Copies a {@link Statement}. * * @param object * object to copy * @return copied object */ public Statement copy(Statement object) { return dataObjectFactory.getStatement( (EntityIdValue) visit(object.getSubject()), copy(object.getMainSnak()), copy(object.getQualifiers()), copyReferences(object.getReferences()), object.getRank(), object.getStatementId()); }