Changeset 4181 for DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcTargetDao.java
- Timestamp:
- 12/11/13 15:59:54 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcTargetDao.java
r4173 r4181 54 54 public Target getTarget(Number internalID) { 55 55 StringBuilder sql = new StringBuilder("SELECT "); 56 sql.append( TargetStar).append(" FROM ").append(targetTableName).append(" WHERE ").append(target_id).append("= ? LIMIT 1");57 List<Target> result = getSimpleJdbcTemplate().query(sql.toString(), TargetRowMapper, internalID);56 sql.append(targetStar).append(" FROM ").append(targetTableName).append(" WHERE ").append(target_id).append("= ? LIMIT 1"); 57 List<Target> result = getSimpleJdbcTemplate().query(sql.toString(), targetRowMapper, internalID); 58 58 return (!result.isEmpty() ? result.get(0) : null); 59 59 } 60 private final RowMapper<Target> TargetRowMapper = new RowMapper<Target>() {60 private final RowMapper<Target> targetRowMapper = new RowMapper<Target>() { 61 61 @Override 62 62 public Target mapRow(ResultSet rs, int rowNumber) throws SQLException { … … 71 71 public String getLink(Number internalID) { 72 72 StringBuilder sql = new StringBuilder("SELECT "); 73 sql.append( TargetStar).append(" FROM ").append(targetTableName).append(" WHERE ").append(target_id).append("= ? LIMIT 1");73 sql.append(targetStar).append(" FROM ").append(targetTableName).append(" WHERE ").append(target_id).append("= ? LIMIT 1"); 74 74 List<String> result = getSimpleJdbcTemplate().query(sql.toString(), linkRowMapper, internalID); 75 75 return (!result.isEmpty() ? result.get(0) : null); … … 122 122 123 123 StringBuilder sql = new StringBuilder("SELECT "); 124 sql.append(external_id).append(",").append(link_uri).append(",").append(version). 124 sql.append(external_id).append(",").append(link_uri).append(",").append(version).append(",").append(fragment_descriptor). 125 125 append(" FROM ").append(targetTableName).append(" WHERE ").append(target_id).append(" IN ").append(targetIDs); 126 126 return getSimpleJdbcTemplate().query(sql.toString(), targetInfoRowMapper); … … 129 129 @Override 130 130 public TargetInfo mapRow(ResultSet rs, int rowNumber) throws SQLException { 131 return constructTargetInfo(rs.getString(external_id), rs.getString(link_uri), rs.getString(version) );131 return constructTargetInfo(rs.getString(external_id), rs.getString(link_uri), rs.getString(version), rs.getString(fragment_descriptor)); 132 132 } 133 133 }; … … 166 166 public Number addTarget(Target target) { 167 167 UUID externalID = UUID.randomUUID(); 168 String[] linkParts = splitLink(target.getLink()); 168 169 Map<String, Object> params = new HashMap<String, Object>(); 169 170 params.put("externalId", externalID.toString()); 170 params.put("linkUri", target.getLink());171 params.put("linkUri", linkParts[0]); 171 172 params.put("version", target.getVersion()); 173 params.put("fragmentDescriptor", linkParts[1]); 172 174 StringBuilder sql = new StringBuilder("INSERT INTO "); 173 sql.append(targetTableName).append("(").append(external_id).append(",").append(link_uri).append(",").append(version).append(",").append(last_modified).append(" ) VALUES (:externalId, :linkUri, :version, current_timestamp AT TIME ZONE INTERVAL '00:00' HOUR TO MINUTE)");175 sql.append(targetTableName).append("(").append(external_id).append(",").append(link_uri).append(",").append(version).append(",").append(last_modified).append(",").append(fragment_descriptor).append(" ) VALUES (:externalId, :linkUri, :version, current_timestamp AT TIME ZONE INTERVAL '00:00' HOUR TO MINUTE, :fragmentDescriptor)"); 174 176 final int affectedRows = getSimpleJdbcTemplate().update(sql.toString(), params); 175 177 return (affectedRows > 0 ? getInternalID(UUID.fromString(externalID.toString())) : null); … … 227 229 228 230 /////////// HELPERS //////////////// 229 private TargetInfo constructTargetInfo(String externalID, String link, String version ) {231 private TargetInfo constructTargetInfo(String externalID, String link, String version, String fragment) { 230 232 TargetInfo targetInfo = new TargetInfo(); 231 233 targetInfo.setRef(externalIDtoURI(externalID)); 232 targetInfo.setLink( link);234 targetInfo.setLink(((new StringBuilder(link)).append("#").append(fragment)).toString()); 233 235 targetInfo.setVersion(version); 234 236 return targetInfo; … … 239 241 target.setURI(externalIDtoURI(externalID)); 240 242 target.setLastModified(xmlTimeStamp); 241 target.setLink( link);243 target.setLink(((new StringBuilder(link)).append("#").append(fragment)).toString()); 242 244 target.setVersion(version); 243 target.setFragmentDescriptor(fragment);244 245 return target; 245 246 } 247 248 private String[] splitLink(String link){ 249 if (link!=null) { 250 String[] result = new String[2]; 251 String[] parts = link.split("#"); 252 if (parts.length > 1) { 253 result[0] = parts[0]; 254 StringBuilder buffer = new StringBuilder(); 255 for (int i=1; i<parts.length ; i++){ 256 if (parts[i]!=null){ 257 buffer.append(parts[i]); 258 } 259 } 260 result[1] = buffer.toString(); 261 } 262 return result; 263 } 264 else return null; 265 } 246 266 }
Note: See TracChangeset
for help on using the changeset viewer.