Changeset 3241


Ignore:
Timestamp:
08/06/13 09:51:02 (11 years ago)
Author:
olhsha
Message:

implementing tool-kit methods of Version: get, retrieve, delete, add, purge, purgeAll. Not tested

Location:
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src
Files:
2 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcCachedRepresentationDao.java

    r3238 r3241  
    163163          String sql = "INSERT INTO "+cachedRepresentationTableName + "("+external_id+","+ mime_type+"," + tool+","+type_+" ) VALUES (:externalId, :mime_type,  :tool, :type)";
    164164          final int affectedRows = getSimpleJdbcTemplate().update(sql, params);
    165           CachedRepresentationInfo cachedNew = makeFreshCopy(cached);         
     165         
     166          CachedRepresentationInfo cachedNew = makeFreshCopy(cached);
     167          cachedNew.setRef(externalIdentifier.toString());
     168         
    166169          return cachedNew;
    167170      }
     
    208211     @Override
    209212     public int purgeAll(){
    210          List<Number> ids = cachedRepresentationIDs();
    211          int countRemoved = 0;
    212          for (Number id: ids){
    213              countRemoved = countRemoved + purge(id);
    214          }
    215          return countRemoved;
     213         List<Number> ids = cachedRepresentationIDs();         
     214         return super.purgeAll(ids, this);
    216215     }
    217216     
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcNotebookDao.java

    r3218 r3241  
    153153        }
    154154
     155        // TODO remove "isNoteBookInTheDB"
    155156        if (isNotebookInTheDataBase(notebookID)) {
    156157            String sql = "SELECT "+notebooksAnnotationsTableNameAnnotation_id+"  FROM "+notebooksAnnotationsTableName+" where "+notebook_id+" = ?";
     
    216217        }
    217218
     219       
     220        // TODO remove "isNoteBookInTheDB"
    218221        if (isNotebookInTheDataBase(notebookID)) {
    219222            Annotations result = new Annotations();
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcResourceDao.java

    r3236 r3241  
    4646    final static protected String annotationsSourcesTableName = "annotations_target_sources";
    4747    final static protected String versionsCachedRepresentationsTableName = "versions_cached_representations";
    48    
     48    final static protected String sourcesVersionsTableName = "sources_versions";
    4949   
    5050    // base string constants: field Names
     
    145145        return result;
    146146    }
     147   
     148    ///////////////////////////////////////////////
     149   
     150    protected int purge(Number id){
     151        return 0;
     152    }
     153   
     154    protected <T extends JdbcResourceDao> int purgeAll(List<Number> ids, T instance) {
     155         int countRemoved = 0;
     156         for (Number id: ids){
     157             countRemoved = countRemoved + instance.purge(id);
     158         }
     159         return countRemoved;
     160    }
    147161}
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcVersionDao.java

    r3239 r3241  
    2020import eu.dasish.annotation.backend.dao.VersionDao;
    2121import eu.dasish.annotation.backend.identifiers.VersionIdentifier;
     22import eu.dasish.annotation.schema.CachedRepresentationInfo;
    2223import eu.dasish.annotation.schema.Version;
    2324import java.sql.ResultSet;
    2425import java.sql.SQLException;
     26import java.util.HashMap;
    2527import java.util.List;
     28import java.util.Map;
    2629import javax.sql.DataSource;
    2730import org.springframework.jdbc.core.RowMapper;
     
    126129    @Override
    127130    public List<Number> retrieveVersionList(Number sourceID){
    128         return null;
    129     }
     131       String sql = "SELECT "+version_id+" FROM "+sourcesVersionsTableName+" WHERE "+source_id + " = ?";
     132       List<Number> result= getSimpleJdbcTemplate().query(sql, versionsSourcesRunnerRowMapper, sourceID);
     133       return result;
     134     }
     135     
     136     private final RowMapper<Number> versionsSourcesRunnerRowMapper = new RowMapper<Number>() {       
     137        @Override
     138        public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
     139            Number result = rs.getInt(version_id);
     140            return result;
     141        }
     142     };
     143     
     144   
    130145           
    131146     /////////////////////////////////////////       
    132147    @Override
    133     public int deleteVersion(Number versionID){
    134         return -1;
    135     }
    136    
    137     @Override
    138     public Version addVersion(Version version){
     148    public int deleteVersion(Number internalID){
     149        String sql = "DELETE FROM " + versionTableName + " where "+version_id + " = ?";
     150        String sqlSourcesVersions = "DELETE FROM " + sourcesVersionsTableName + " where "+version_id + " = ?";       
     151        getSimpleJdbcTemplate().update(sqlSourcesVersions, internalID);
     152        return (getSimpleJdbcTemplate().update(sql, internalID));
     153    }
     154   
     155    @Override
     156    public Version addVersion(Version freshVersion){
     157          VersionIdentifier externalIdentifier = new VersionIdentifier();
     158          String newExternalIdentifier = externalIdentifier.toString();
     159         
     160          Map<String, Object> params = new HashMap<String, Object>();
     161          params.put("externalId", newExternalIdentifier);
     162          //TODO: till the schema is fixed, version-text and version's external Id are the same (now version do not have URI's/ext id's)
     163          params.put("version", newExternalIdentifier);
     164          String sql = "INSERT INTO "+versionTableName + "("+external_id+","+ version+" ) VALUES (:externalId, :version)";
     165          final int affectedRows = getSimpleJdbcTemplate().update(sql, params);
     166          Version versionAdded = makeFreshCopy(freshVersion);
     167          // TODO change for external identifier when the shcem is fixed
     168          versionAdded.setVersion(newExternalIdentifier);
    139169        return null;
    140170    }
    141171     
     172    ///////////////////////////////////////////////////////////////////
    142173    @Override
    143174    public int purge(Number internalID){
    144         return -1;
    145     }
     175       String sqlCheck = "SELECT "+source_id+" FROM "+sourcesVersionsTableName+" WHERE "+version_id  +"= ?";
     176       List<Number> result= getSimpleJdbcTemplate().query(sqlCheck, versionCheckerRowMapper, internalID);
     177       if (result.size() < 1) {
     178           String sql ="DELETE FROM " + versionTableName + " where "+version_id + " = ?";
     179           return getSimpleJdbcTemplate().update(sql,  internalID);
     180       }
     181       else {
     182           return 0;
     183       }
     184    }
     185   
     186    private final RowMapper<Number> versionCheckerRowMapper = new RowMapper<Number>() {       
     187        @Override
     188        public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
     189            Number result = rs.getInt(source_id);
     190            return result;
     191        }
     192     };
     193   
     194    //////////////////////////////////////////////////////
    146195   
    147196    @Override
    148197    public List<Number> versionIDs(){
    149        return null;
    150     }
    151    
     198       String sqlCheck = "SELECT "+version_id+" FROM "+versionTableName;
     199       List<Number> result= getSimpleJdbcTemplate().query(sqlCheck, versionRunnerRowMapper);
     200       return result;
     201    }
     202   
     203    private final RowMapper<Number> versionRunnerRowMapper = new RowMapper<Number>() {       
     204        @Override
     205        public Number mapRow(ResultSet rs, int rowNumber) throws SQLException {
     206            Number result = rs.getInt(version_id);
     207            return result;
     208        }
     209     };
     210     
     211    /////////////////////////////////////////////////////////////
    152212    @Override
    153213    public int purgeAll(){
    154         return -1;
     214         List<Number> ids = versionIDs();
     215         return super.purgeAll(ids, this);
     216    }
     217   
     218   
     219    private Version makeFreshCopy(Version version) {
     220         Version result = new Version();
     221         // TOD: add external ID when the schema is corrected
     222         result.setVersion(version.getVersion());
     223         return result;
    155224    }
    156225}
  • DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/dao/impl/JdbcCachedRepresentationDaoTest.java

    r3239 r3241  
    151151        assertEquals("vi", result.getTool());
    152152        assertEquals("text", result.getType());
     153        assertFalse(result.getRef() == null); // new non-null external identifier should be assigned
    153154    }
    154155   
Note: See TracChangeset for help on using the changeset viewer.