Ignore:
Timestamp:
08/23/13 15:20:13 (11 years ago)
Author:
olhsha
Message:

making URI's in JAXB-generated classes fro resources <serviceURI>_<external_id>. Earlier it was just external Id.

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/JdbcAnnotationDao.java

    r3461 r3463  
    5757    @Override
    5858    public List<Number> retrieveSourceIDs(Number annotationID) {
    59         String sql = "SELECT " + source_id + " FROM " + annotationsSourcesTableName + " WHERE " + annotation_id + "= ?";
    60         List<Number> result = getSimpleJdbcTemplate().query(sql, sourceIDRowMapper, annotationID);
    61         return result;
     59        StringBuilder sql = new StringBuilder("SELECT DISTINCT ");
     60        sql.append(source_id).append(" FROM ").append(annotationsSourcesTableName).append(" WHERE ").append(annotation_id).append("= ?");
     61        return getSimpleJdbcTemplate().query(sql.toString(), sourceIDRowMapper, annotationID);
    6262    }
    6363   
     
    102102        }
    103103
    104         List<Number> result = getSimpleJdbcTemplate().query(sql.toString(), internalIDRowMapper, params);
    105         return result;
     104        return getSimpleJdbcTemplate().query(sql.toString(), internalIDRowMapper, params);
    106105    }
    107106
     
    119118        query.append(annotation_id).append(" FROM ").append(annotationsSourcesTableName).append(" WHERE ").append(source_id).append(" IN ");
    120119        query.append(values);
    121         List<Number> result = getSimpleJdbcTemplate().query(query.toString(), internalIDRowMapper);
    122         return result;
     120        return getSimpleJdbcTemplate().query(query.toString(), internalIDRowMapper);
    123121    }
    124122   
     
    137135
    138136        String values = makeListOfValues(annotationIDs);
    139         String sql = "SELECT DISTINCT " + annotationStar + " FROM " + annotationTableName + " WHERE " + annotationAnnotation_id + "  IN " + values;
    140         return getSimpleJdbcTemplate().query(sql, annotationInfoRowMapper);
     137        StringBuilder sql = new StringBuilder("SELECT DISTINCT ");
     138        sql.append(annotationStar).append(" FROM ").append(annotationTableName ).append(" WHERE ").append(annotationAnnotation_id).append("  IN ").append(values);
     139        return getSimpleJdbcTemplate().query(sql.toString(), annotationInfoRowMapper);
    141140    }
    142141    private final RowMapper<AnnotationInfo> annotationInfoRowMapper = new RowMapper<AnnotationInfo>() {
     
    144143        public AnnotationInfo mapRow(ResultSet rs, int rowNumber) throws SQLException {
    145144            AnnotationInfo annotationInfo = new AnnotationInfo();
     145            annotationInfo.setRef(externalIDtoURI(_serviceURI, rs.getString(external_id)));
    146146            annotationInfo.setOwner(getResourceREF(Integer.toString(rs.getInt(owner_id))));
    147147            annotationInfo.setHeadline(rs.getString(headline));
     
    161161    @Override
    162162    public List<ResourceREF> getAnnotationREFs(List<Number> annotationIDs) {
    163 
    164163        if (annotationIDs == null) {
    165164            return null;
    166165        }
    167 
    168166        if (annotationIDs.isEmpty()) {
    169167            return (new ArrayList<ResourceREF>());
     
    171169
    172170        String values = makeListOfValues(annotationIDs);
    173         String sql = "SELECT DISTINCT " + annotationAnnotation_id + " FROM " + annotationTableName + " WHERE " + annotationAnnotation_id + "  IN " + values;
    174         return getSimpleJdbcTemplate().query(sql, annotationREFRowMapper);
     171        StringBuilder sql = new StringBuilder("SELECT DISTINCT ");
     172        sql.append(external_id).append(" FROM ").append(annotationTableName).append(" WHERE ").append(annotationAnnotation_id).append("  IN ").append(values);
     173        return getSimpleJdbcTemplate().query(sql.toString(), annotationREFRowMapper);
    175174    }
    176175    private final RowMapper<ResourceREF> annotationREFRowMapper = new RowMapper<ResourceREF>() {
     
    178177        public ResourceREF mapRow(ResultSet rs, int rowNumber) throws SQLException {
    179178            ResourceREF annotationREF = new ResourceREF();
    180             annotationREF.setRef(Integer.toString(rs.getInt(annotation_id)));
     179            annotationREF.setRef(externalIDtoURI(_serviceURI, rs.getString(external_id)));
    181180            return annotationREF;
    182181        }
     
    188187        if (annotationID == null) {
    189188            return null;        }
    190         String sql = "SELECT " + annotationStar + " FROM " + annotationTableName + " WHERE " + annotationAnnotation_id + "= ? LIMIT  1";
    191         List<Annotation> respond = getSimpleJdbcTemplate().query(sql, annotationRowMapper, annotationID);
    192 
    193         if (respond == null) {
    194             return null;
    195         }
    196      
    197         Annotation result = respond.get(0);
    198         String externalId = result.getURI();
    199         result.setURI(extrnalIDtoURI(_serviceURI, externalId));
    200        
    201         return result;
     189        StringBuilder sql = new StringBuilder("SELECT ");
     190        sql.append(annotationStar).append(" FROM ").append(annotationTableName).append(" WHERE ").append(annotationAnnotation_id).append("= ? LIMIT  1");
     191        List<Annotation> respond = getSimpleJdbcTemplate().query(sql.toString(), annotationRowMapper, annotationID);
     192        return (respond.isEmpty() ? null : respond.get(0));
    202193    }
    203194   
     
    215206            annotation.setBody(Helpers.deserializeBody(rs.getString(body_xml)));
    216207            annotation.setTargetSources(null);
    217             // TODO: fix: rpelace URI in the schema with external id, or make here the conversion:
    218             // from external ID in the DB to the URI for the class
    219             annotation.setURI(rs.getString(external_id));
     208            annotation.setURI(externalIDtoURI(_serviceURI, rs.getString(external_id)));
    220209
    221210            try {
     
    232221   
    233222    private boolean annotationIsInUse(Number sourceID) {
    234         String sqlNotebooks = "SELECT " + notebook_id + " FROM " + notebooksAnnotationsTableName + " WHERE " + annotation_id + "= ? LIMIT 1";
    235         List<Number> resultNotebooks = getSimpleJdbcTemplate().query(sqlNotebooks, notebookIDRowMapper, sourceID);
     223        StringBuilder sqlNotebooks = new StringBuilder("SELECT ");
     224        sqlNotebooks.append(notebook_id).append(" FROM ").append(notebooksAnnotationsTableName).append(" WHERE ").append(annotation_id).append("= ? LIMIT 1");
     225        List<Number> resultNotebooks = getSimpleJdbcTemplate().query(sqlNotebooks.toString(), notebookIDRowMapper, sourceID);
    236226        if (resultNotebooks.size() > 0) {
    237227            return true;
    238228        }
    239         String sqlSources = "SELECT " + source_id + " FROM " + annotationsSourcesTableName + " WHERE " + annotation_id + "= ? LIMIT 1";
    240         List<Number> resultSources = getSimpleJdbcTemplate().query(sqlSources, sourceIDRowMapper, sourceID);
     229       
     230        StringBuilder sqlSources = new StringBuilder("SELECT ");
     231        sqlSources.append(source_id).append(" FROM ").append(annotationsSourcesTableName).append(" WHERE ").append(annotation_id).append("= ? LIMIT 1");
     232        List<Number> resultSources = getSimpleJdbcTemplate().query(sqlSources.toString(), sourceIDRowMapper, sourceID);
    241233        if (resultSources.size() > 0) {
    242234            return true;
    243235        }
    244         String sqlPermissions = "SELECT " + principal_id + " FROM " + permissionsTableName + " WHERE " + annotation_id + "= ? LIMIT 1";
    245         List<Number> resultPermissions = getSimpleJdbcTemplate().query(sqlPermissions, principalIDRowMapper, sourceID);
    246         if (resultPermissions.size() > 0) {
    247             return true;
    248         }
    249236       
    250         return false;
     237        StringBuilder sqlPermissions = new StringBuilder("SELECT ");
     238        sqlPermissions.append(principal_id).append(" FROM ").append(permissionsTableName).append(" WHERE ").append(annotation_id).append("= ? LIMIT 1");
     239        List<Number> resultPermissions = getSimpleJdbcTemplate().query(sqlPermissions.toString(), principalIDRowMapper, sourceID);
     240        return (resultPermissions.size() > 0);
    251241    }
    252242   
     
    282272        sql.append(",").append(headline).append(",").append(body_xml).append(" ) VALUES (:externalId, :ownerId, :headline, :bodyXml)");
    283273        int affectedRows = getSimpleJdbcTemplate().update(sql.toString(), params);
    284         if (affectedRows == 1) {
    285             return getInternalID(externalID);
    286         } else {
    287             return null;
    288         }
    289 
     274        return ((affectedRows > 0) ? getInternalID(externalID) : null);
    290275    }
    291276   
     
    296281        paramsAnnotationsSources.put("annotationId", annotationID);
    297282        paramsAnnotationsSources.put("sourceId", sourceID);
    298         String sqlAnnotationsSources = "INSERT INTO " + annotationsSourcesTableName + "(" + annotation_id + "," + source_id + " ) VALUES (:annotationId, :sourceId)";
    299         int affectedRows = getSimpleJdbcTemplate().update(sqlAnnotationsSources, paramsAnnotationsSources);
    300         return (affectedRows);
     283        StringBuilder  sqlAnnotationsSources = new StringBuilder("INSERT INTO ");
     284        sqlAnnotationsSources.append(annotationsSourcesTableName ).append("(").append(annotation_id).append(",").append(source_id).append(" ) VALUES (:annotationId, :sourceId)");
     285        return getSimpleJdbcTemplate().update(sqlAnnotationsSources.toString(), paramsAnnotationsSources);
    301286    }
    302287    //////////////////////////////////////////////////////////////////////////////////
    303288
    304289   
    305     //////////////////////////////////////////////////////
     290    /////////////////// DELETERS //////////////////////////
    306291    @Override
    307292    public int deleteAnnotation(Number annotationID) throws SQLException {
     
    309294            return 0;
    310295        }
    311        
    312         String sqlAnnotation = "DELETE FROM " + annotationTableName + " where " + annotation_id + " = ?";
    313         return (getSimpleJdbcTemplate().update(sqlAnnotation, annotationID));
     296        StringBuilder sqlAnnotation = new StringBuilder("DELETE FROM ");
     297        sqlAnnotation.append(annotationTableName).append(" where ").append(annotation_id).append(" = ?");
     298        return (getSimpleJdbcTemplate().update(sqlAnnotation.toString(), annotationID));
    314299    }
    315300   
     
    317302    @Override
    318303    public int deleteAllAnnotationSource(Number annotationID) throws SQLException {
    319         String sqlTargetSources = "DELETE FROM " + annotationsSourcesTableName + " where " + annotation_id + " = ?";
    320         return getSimpleJdbcTemplate().update(sqlTargetSources, annotationID); // removed "annotations_target_sources" rows
     304        StringBuilder sqlTargetSources = new StringBuilder("DELETE FROM ");
     305        sqlTargetSources.append(annotationsSourcesTableName).append(" WHERE ").append(annotation_id).append(" = ?");
     306        return getSimpleJdbcTemplate().update(sqlTargetSources.toString(), annotationID); // # removed "annotations_target_sources" rows
    321307       
    322308    }
     
    338324    @Override
    339325    public int deleteAnnotationPrincipalPermissions(Number annotationID) throws SQLException {
    340         String sqlPermissions = "DELETE FROM " + permissionsTableName + " where " + annotation_id + " = ?";
    341         return getSimpleJdbcTemplate().update(sqlPermissions, annotationID); // removed "permission" rows
     326        StringBuilder sqlPermissions = new StringBuilder("DELETE FROM ");
     327        sqlPermissions.append(permissionsTableName).append(" WHERE ").append(annotation_id).append(" = ?");
     328        return getSimpleJdbcTemplate().update(sqlPermissions.toString(), annotationID); // removed "permission" rows
    342329       
    343330    }
     
    350337        paramsPermissions.put("principalId", userID);
    351338        paramsPermissions.put("status", permission.value());
    352         String sqlUpdatePermissionTable = "INSERT INTO " + permissionsTableName + " (" + annotation_id + "," + principal_id + "," + this.permission + ") VALUES (:annotationId, :principalId, :status)";
    353         final int affectedPermissions = getSimpleJdbcTemplate().update(sqlUpdatePermissionTable, paramsPermissions);
     339        StringBuilder sqlUpdatePermissionTable = new StringBuilder("INSERT INTO ");
     340        sqlUpdatePermissionTable.append(permissionsTableName).append(" (").append(annotation_id).append(",").append(principal_id).append(",").append(this.permission ).append(") VALUES (:annotationId, :principalId, :status)");
     341        final int affectedPermissions = getSimpleJdbcTemplate().update(sqlUpdatePermissionTable.toString(), paramsPermissions);
    354342        return affectedPermissions;
    355343    }
     
    362350            return null;
    363351        }
    364         String sql = "SELECT " + principal_id + "," + permission + " FROM " + permissionsTableName + " WHERE " + annotation_id + "  = ?";
    365         List<Map<Number, String>> result = getSimpleJdbcTemplate().query(sql, principalsPermissionsRowMapper, annotationId.toString());
    366         return result;
     352        StringBuilder sql = new StringBuilder("SELECT ");
     353        sql.append(principal_id).append(",").append(permission).append(" FROM ").append(permissionsTableName).append(" WHERE ").append(annotation_id).append("  = ?");
     354        return getSimpleJdbcTemplate().query(sql.toString(), principalsPermissionsRowMapper, annotationId.toString());
    367355    }
    368356    private final RowMapper<Map<Number, String>> principalsPermissionsRowMapper = new RowMapper<Map<Number, String>>() {
Note: See TracChangeset for help on using the changeset viewer.