コード例 #1
0
 protected void setModelAndID(final JerModel jm, final int selID) {
   if (selectedModel != null) {
     if (jm.equals(selectedModel) && selID == this.selectedID) {
       return;
     }
     if (!jm.equals(selectedModel) && selID == -1) {
       return;
     }
   }
   jerHistRef.add(new JerHistObj(jm, selID));
   setModelAndIDAndNotify(jm, selID);
 }
コード例 #2
0
 @SuppressWarnings("unchecked")
 public HashMap<String, Object> getAllDataForID(final JerModel jm, final int id) {
   final String str = jm.getSqlAllDataForID(id);
   final List<Object> colLi = readDB(str);
   final HashMap<String, Object> hm = new HashMap<>();
   if (colLi.size() == 1) {
     final List<Object> rowLi = (List<Object>) colLi.get(0);
     for (int i = 0; i < jm.getDataColumns().length; i++) {
       hm.put(jm.getDataColumns()[i], rowLi.get(i));
     }
   }
   return hm;
 }
コード例 #3
0
 private void writeDB(
     final JerModel jerModel,
     final boolean isInsert,
     final boolean isUpdate,
     final boolean isDelete) {
   try {
     try {
       conn.setAutoCommit(false);
       if (isInsert) {
         try (PreparedStatement psJm = jerModel.getPreparer().createInsertStmt(conn)) {
           psJm.executeUpdate();
         }
         conn.commit();
         for (final PreparedStatement stmt :
             jerModel
                 .getPreparer()
                 .getPrepStmtsFromMultiFields(conn, getMaxIDValueForTable(jerModel))) {
           try (PreparedStatement psJm = stmt) {
             psJm.executeUpdate();
           }
         }
       } else if (isUpdate) {
         for (final PreparedStatement stmt : jerModel.getPreparer().createUpdateStmts(conn)) {
           try (PreparedStatement psJm = stmt) {
             psJm.executeUpdate();
           }
         }
       } else if (isDelete) {
         for (final PreparedStatement stmt : jerModel.getPreparer().createDelStmts(conn)) {
           try (PreparedStatement psJm = stmt) {
             psJm.executeUpdate();
           }
         }
       }
       conn.commit();
       setChanged();
       notifyObservers(new JerObserverMsg(JerMsgType.DB_UPDATE));
     } catch (SQLException | NumberFormatException nfe) {
       conn.rollback();
       conn.setAutoCommit(true);
       throw nfe;
     } finally {
       conn.setAutoCommit(true);
     }
   } catch (final SQLException e1) {
     LOGGER.severe(e1.getMessage());
     setModelAndID(jerModel, -1);
     jerInfoMsgHandler.showMsg("@" + jerModel.getIdName() + ": " + e1.getLocalizedMessage());
   }
 }
コード例 #4
0
 @SuppressWarnings("unchecked")
 public Set<Integer> getAssociatedIDs(final JerModel jm) {
   final String sql = jm.getSQLStrForIDs(selectedModel, selectedID);
   final List<Object> objLi = readDB(sql);
   final Set<Integer> associatedIDs = new HashSet<>();
   for (int i = 0; i < objLi.size(); i++) {
     final List<Object> valueList = (List<Object>) objLi.get(i);
     associatedIDs.add((Integer) valueList.get(0));
   }
   return associatedIDs;
 }
コード例 #5
0
 @SuppressWarnings("unchecked")
 public HashMap<String, Object> getTimeDataForID(final JerModel jm, final int id) {
   final String str = jm.getSqlTimeDataForAuthorID(id);
   final List<Object> colLi = readDB(str);
   final HashMap<String, Object> hm = new HashMap<>();
   if (colLi.size() == 1) {
     final List<Object> rowLi = (List<Object>) colLi.get(0);
     hm.put("BEGIN_YEAR", rowLi.get(0));
     hm.put("END_YEAR", rowLi.get(1));
   }
   return hm;
 }
コード例 #6
0
 public List<String> fetchColumnNames(final JerModel jm) throws SQLException {
   final List<String> strList = new ArrayList<>();
   try (PreparedStatement stmt = conn.prepareStatement(jm.getSqlAllData());
       ResultSet rs = stmt.executeQuery()) {
     final ResultSetMetaData rsmd = rs.getMetaData();
     final int columnCount = rsmd.getColumnCount();
     for (int i = 1; i <= columnCount; i++) {
       final String str = rsmd.getColumnName(i);
       strList.add(str);
     }
   }
   return strList;
 }
コード例 #7
0
 @SuppressWarnings("unchecked")
 public void setPlaceModelAndID(final Coordinate coordinate) {
   final List<Object> colLi = readDB(selectedModel.getSqlSelectPlaceByCoordinate(coordinate));
   int val = -1;
   if (colLi.size() == 1 && colLi.get(0) != null) {
     final List<Object> rowLi = (List<Object>) colLi.get(0);
     if (rowLi.size() == 1 && rowLi.get(0) != null) {
       val = (int) rowLi.get(0);
     }
   }
   if (val != -1 && pm != null) {
     setModelAndID(pm, val);
   }
 }
コード例 #8
0
 @SuppressWarnings("rawtypes")
 public Class[] getTypes(final JerModel jm) throws SQLException {
   final List<Class> classTypeList = new ArrayList<>();
   try (PreparedStatement stmt = conn.prepareStatement(jm.getSqlAllData());
       ResultSet rs = stmt.executeQuery()) {
     final ResultSetMetaData rsmd = rs.getMetaData();
     final int columnCount = rsmd.getColumnCount();
     for (int i = 1; i <= columnCount; i++) {
       final int str = rsmd.getColumnType(i);
       classTypeList.add(convert(str));
     }
   }
   return classTypeList.toArray(new Class[0]);
 }
コード例 #9
0
  @SuppressWarnings("unchecked")
  public JerPlace getAdditionalInstancesForSpecificPlace(final int selectedID2)
      throws ParseException {
    final GeometryFactory gf = new GeometryFactory();
    final JerGeoObserverMsg geoMsg = new JerGeoObserverMsg();
    final List<Object> pathObjLi =
        readDB(selectedModel.getSqlAdditionalInstancesForSpecificPlace(selectedID2));

    for (final Object o : pathObjLi) {
      final List<Object> objLi = (List<Object>) o;

      if (objLi.size() == 2 && objLi.get(0) != null && objLi.get(1) != null) {
        final Point p =
            gf.createPoint(new Coordinate((double) objLi.get(0), (double) objLi.get(1)));
        final JerPlace place = new JerPlace(p);
        geoMsg.addPlaceToLi(place);
      }

      if (objLi.size() == 3 && objLi.get(0) != null && objLi.get(1) != null) {
        final Point p =
            gf.createPoint(new Coordinate((double) objLi.get(0), (double) objLi.get(1)));
        final JerPlace place = new JerPlace(p);
        if (objLi.get(2) != null) {
          final WKTReader wktr = new WKTReader(gf);
          final Geometry additional = wktr.read((String) objLi.get(2));
          place.setAdditionalInstances(additional);
        }
        geoMsg.addPlaceToLi(place);
      }

      if (objLi.size() == 4 && objLi.get(1) != null && objLi.get(2) != null) {
        final Point p =
            gf.createPoint(new Coordinate((double) objLi.get(1), (double) objLi.get(2)));
        final JerPlace place = new JerPlace(p);
        if (objLi.get(0) != null) {
          place.setNumber((int) objLi.get(0));
        }
        if (objLi.get(3) != null) {
          final WKTReader wktr = new WKTReader(gf);
          final Geometry additional = wktr.read((String) objLi.get(3));
          place.setAdditionalInstances(additional);
        }
        geoMsg.addPlaceToLi(place);
      }
    }
    return geoMsg.getPlaceLi().get(0);
  }
コード例 #10
0
 public void checkSelectedPlaces() throws ParseException {
   checkAssociatedPlaces(selectedModel, selectedModel.getIdName(), selectedID);
 }
コード例 #11
0
 @SuppressWarnings("unchecked")
 public int getMaxIDValueForTable(final JerModel jerModel) {
   final List<Object> rowLi = (List<Object>) readDB(jerModel.getSqlMaxID()).get(0);
   return (int) rowLi.get(0);
 }
コード例 #12
0
 public List<Object> getAllToposForPlaceID(final JerModel jm, final int id) {
   return readDB(jm.getSqlAllTopoiForPlaceID(id));
 }
コード例 #13
0
 public List<Object> getAllData(final JerModel jm) {
   return readDB(jm.getSqlAllData());
 }