// Split MWCellArray into two MWCellArrays private MWCellArray vect_FaultsSplit(MWCellArray vect_Faults, int index) { // vect_Faults try { int[] cellsSizeArray = {1}; MWCellArray vect_Faults1 = new MWCellArray(cellsSizeArray); double[] vectorArray = ((double[][]) ((Object[]) vect_Faults.toArray()[0])[0])[0]; int arraySize = vectorArray.length / 2; double[] vectorArrayNew = new double[arraySize]; switch (index) { case 0: for (int i = 0; i < arraySize; i++) { vectorArrayNew[i] = vectorArray[i]; } break; case 1: int arrayIndex = 0; for (int i = arraySize; i < vectorArray.length; i++) { vectorArrayNew[arrayIndex] = vectorArray[i]; arrayIndex++; } break; } vect_Faults1.set(1, vectorArrayNew); return vect_Faults1; } catch (Exception e) { // LOG.error(e.getMessage()); System.out.println(e.getMessage()); return null; } }
@Override public boolean accept(MREJPEQSpatialDataType spatialTypeTuple) { try { switch (spatialTypeTuple.getMatlabType()) { case 1: // zone addZone(spatialTypeTuple.getByteArray()); break; case 2: // fault addFault(spatialTypeTuple.getByteArray()); break; case 3: // damages addDamages(spatialTypeTuple.getByteArray()); break; case 4: // gmapparams addGmapparameters(spatialTypeTuple.getByteArray()); break; case 5: // spectral addSpectral(spatialTypeTuple.getByteArray()); break; case 6: // secperil addSecPeril(spatialTypeTuple.getByteArray()); break; case 7: // portfolio addPortfolio(spatialTypeTuple.getByteArray()); break; case 8: // soil addSoil(spatialTypeTuple.getByteArray()); break; case 9: // controlparams addControlParam(spatialTypeTuple.getByteArray()); break; case 10: // riskitemids addRiskItemId(spatialTypeTuple.getByteArray()); break; } return false; } catch (Exception e) { e.printStackTrace(); } return false; }
// This function processes distribution setup wrapper matlab function public void getMatlabData(MWStructArray zones, MWStructArray faults) { try { LOG.error("Processing Distribution_Setup"); Distribution_SetupWrapper distributionsetup = new Distribution_SetupWrapper(); Object[] distributionsetupobj = null; distributionsetupobj = distributionsetup.Distribution_Setup(7, zones, faults); MWCellArray vect_gridPoints = null; MWCellArray maxNumOfEventPerPartition = null; MWNumericArray numlabs_gridPoints = null; MWNumericArray labindex_gridPoints = null; MWCellArray vect_Faults = null; MWNumericArray numlabs_Faults = null; MWNumericArray labindex_Faults = null; vect_gridPoints = (MWCellArray) distributionsetupobj[0]; // Vector Grid points maxNumOfEventPerPartition = (MWCellArray) distributionsetupobj[1]; // numlabs_gridPoints = (MWNumericArray) distributionsetupobj[2]; // labindex_gridPoints = (MWNumericArray) distributionsetupobj[3]; // vect_Faults = (MWCellArray) distributionsetupobj[4]; // numlabs_Faults = (MWNumericArray) distributionsetupobj[5]; // labindex_Faults = (MWNumericArray) distributionsetupobj[6]; // // Serialize all matlab object maxNumOfEventList = getByteArraylist(maxNumOfEventPerPartition.serialize()); vect_gridPointsList1 = getByteArraylist(vect_gridPointsSplit(vect_gridPoints, 0).serialize()); vect_FaultsList1 = getByteArraylist(vect_FaultsSplit(vect_Faults, 0).serialize()); vect_gridPointsList2 = getByteArraylist(vect_gridPointsSplit(vect_gridPoints, 1).serialize()); vect_FaultsList2 = getByteArraylist(vect_FaultsSplit(vect_Faults, 1).serialize()); // For testing only vect_gridPointsListAll = getByteArraylist(vect_gridPoints.serialize()); vect_FaultsListAll = getByteArraylist(vect_Faults.serialize()); } catch (Exception e) { LOG.error(e.getMessage()); System.out.println(e.getMessage()); } }