public Map<String, Long> run(Session session, ExtendedMetadata em) { StringBuilder sb = new StringBuilder(); sb.append("x.details.group.id = "); sb.append(groupID); sb.append(" and "); sb.append("y.details.group.id = "); sb.append(groupID); if (drop.reduceGroup) { sb.append(" and x.details.owner.id <> y.details.owner.id"); } return em.countLocks(session, null, lockChecks, sb.toString()); } }
public Map<String, Long> getLockingIds(final Class<IObject> type, final long id, final Long groupId) { String groupClause = ""; if (groupId != null) { groupClause = "and details.group.id <> " + groupId; } // since it's a managed entity it's class.getName() might // contain // some byte-code generation string final Class<? extends IObject> klass = Utils.trueClass(type); // the values that could possibly link to this instance. final String[][] checks = metadata.getLockChecks(klass); return this.metadata.countLocks(osf.getSession(), id, checks, groupClause); }