Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* jPOS Project [http://jpos.org]
* Copyright (C) 2000-2015 Alejandro P. Revilla
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package org.jpos.iso.packager;
import org.jpos.core.ConfigurationException;
import org.jpos.core.SimpleConfiguration;
import org.jpos.iso.ISOBasePackager;
import org.jpos.iso.ISOBaseValidator;
import org.jpos.iso.ISOComponent;
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOFieldPackager;
import org.jpos.iso.ISOFieldValidator;
import org.jpos.iso.ISOMsgFieldPackager;
import org.jpos.iso.ISOMsgFieldValidator;
import org.jpos.iso.ISOValidator;
import org.jpos.iso.validator.ISOVException;
import org.jpos.util.LogEvent;
import org.jpos.util.Logger;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Stack;
import java.util.TreeMap;
/**
* Generic Packager that configure validators too.
*
Title: jPOS
*
Description: Java Framework for Financial Systems
*
Copyright: Copyright (c) 2000 jPOS.org. All rights reserved.
*
Company: www.jPOS.org
* @author Jose Eduardo Leon
* @version 1.0
*/
@SuppressWarnings("unchecked")
public class GenericValidatingPackager extends GenericPackager implements ISOValidator {
public GenericValidatingPackager( ) throws ISOException{
super();
}
public GenericValidatingPackager( String fileName ) throws ISOException {
super( fileName );
}
public GenericValidatingPackager (InputStream stream) throws ISOException {
super (stream);
}
/**
* Convert the ISOFieldPackagers in the Map
* to an array of ISOFieldPackagers
*/
private ISOFieldPackager[] makeFieldArray(Map m)
{
int maxField = 0;
// First find the largest field number in the Map
for (Entry ent :m.entrySet())
if (ent.getKey() > maxField)
maxField = ent.getKey();
// Create the array
ISOFieldPackager fld[] = new ISOFieldPackager[maxField+1];
// Populate it
for (Entry ent :m.entrySet())
fld[ent.getKey()] = ent.getValue();
return fld;
}
/**
* It define GenericValidatorContentHandler like handler.
*/
public void readFile(String filename) throws org.jpos.iso.ISOException {
try {
XMLReader reader = XMLReaderFactory.createXMLReader(
System.getProperty( "sax.parser",
"org.apache.crimson.parser.XMLReaderImpl"));
reader.setFeature ("http://xml.org/sax/features/validation", true);
GenericValidatorContentHandler handler = new GenericValidatorContentHandler();
reader.setContentHandler(handler);
reader.setErrorHandler(handler);
reader.setEntityResolver(new GenericEntityResolver());
reader.parse(filename);
}
catch (Exception e)
{
e.printStackTrace();
throw new ISOException(e);
}
}
protected void setGenericPackagerParams ( Attributes atts ) {
String maxField = atts.getValue( "maxValidField" );
String emitBmap = atts.getValue( "emitBitmap" );
String bmapfield = atts.getValue( "bitmapField" );
if ( maxField != null )
maxValidField = Integer.parseInt( maxField );
if ( emitBmap != null )
emitBitmap = Boolean.valueOf(emitBmap);
if ( bmapfield != null )
bitmapField = Integer.parseInt( bmapfield );
}
public void setMsgValidator( ISOBaseValidator[] msgVlds ){
this.mvlds = msgVlds;
}
public void setFieldValidator( ISOFieldValidator[] fvlds ){
this.fvlds = fvlds;
}
public ISOComponent validate(ISOComponent m) throws ISOException {
LogEvent evt = new LogEvent( this, "validate" );
try {
ISOComponent c;
Map