public void verifyConstraints() { HBCIPassportInternal passport = getMainPassport(); // durch alle gespeicherten constraints durchlaufen for (Iterator<String> i = constraints.keySet().iterator(); i.hasNext(); ) { // den frontendnamen für das constraint ermitteln String frontendName = (i.next()); // dazu alle ziel-lowlevelparameter mit default-wert extrahieren String[][] values = (constraints.get(frontendName)); // durch alle ziel-lowlevel-parameternamen durchlaufen, die gesetzt werden müssen for (int j = 0; j < values.length; j++) { // Array mit Pfadname und default Wert String[] value = values[j]; // lowlevel-name (Pfadname) des parameters (z.B. wird Frontendname src.bic zum Pfad My.bic String destination = value[0]; // default-wert des parameters, wenn keiner angegeben wurde String defValue = value[1]; String givenContent = getLowlevelParam(destination); if (givenContent == null && indexedConstraints.contains(frontendName)) { givenContent = getLowlevelParam(insertIndex(destination, 0)); } String content = null; content = defValue; if (givenContent != null && givenContent.length() != 0) content = givenContent; if (content == null) { String msg = HBCIUtilsInternal.getLocMsg("EXC_MISSING_HL_PROPERTY", frontendName); if (!HBCIUtilsInternal.ignoreError( passport, "client.errors.ignoreWrongJobDataErrors", msg)) throw new InvalidUserDataException(msg); content = ""; } // evtl. default-wert als aktuellen wert setzen (naemlich dann, // wenn kein content angegeben wurde (givenContent==null), aber // ein default-Content definiert wurde (content.length()!=0) if (content.length() != 0 && givenContent == null) setLowlevelParam(destination, content); } } // verify if segment can be created SEG seg = null; try { seg = createJobSegment(); seg.validate(); } catch (Exception ex) { throw new HBCI_Exception("*** the job segment for this task can not be created", ex); } finally { if (seg != null) { SEGFactory.getInstance().unuseObject(seg); } } }
public SEG createJobSegment(int segnum) { SEG seg = null; try { MsgGen gen = getParentHandler().getMsgGen(); seg = SEGFactory.getInstance().createSEG(getName(), getName(), null, 0, gen.getSyntax()); for (Enumeration e = getLowlevelParams().propertyNames(); e.hasMoreElements(); ) { String key = (String) e.nextElement(); String value = getLowlevelParams().getProperty(key); seg.propagateValue( key, value, SyntaxElement.TRY_TO_CREATE, SyntaxElement.DONT_ALLOW_OVERWRITE); } seg.propagateValue( getName() + ".SegHead.seq", Integer.toString(segnum), SyntaxElement.DONT_TRY_TO_CREATE, SyntaxElement.ALLOW_OVERWRITE); } catch (Exception ex) { throw new HBCI_Exception("*** the job segment for this task can not be created", ex); } return seg; }