/*
* Copyright 2014, The Sporting Exchange Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.betfair.cougar.transformations;
import com.betfair.cougar.codegen.DocumentMangler;
import com.betfair.cougar.codegen.IDLReader;
import com.betfair.cougar.codegen.Service;
import com.betfair.cougar.codegen.Transformations;
import com.betfair.cougar.codegen.Validator;
import com.betfair.cougar.codegen.XmlUtil;
import com.betfair.cougar.codegen.resolver.InterceptingResolver;
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.plugin.logging.SystemStreamLog;
import org.w3c.dom.Document;
import java.io.File;
public class Main {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
Transformations transform = new CougarTransformations();
IDLReader reader = new IDLReader();
Log log = new SystemStreamLog();
File idd = new File("src\\main\\resources\\BaselineService.xml");
InterceptingResolver resolver = new InterceptingResolver();
Document iddDoc = XmlUtil.parse(idd, resolver);
File ext = new File("src\\main\\resources\\BaselineService-Extensions.xml");
Document extDoc = null;
if (ext.exists()) {
extDoc = XmlUtil.parse(ext, resolver);
}
reader.init(iddDoc, extDoc, "BaselineService",
"com.betfair.baseline", ".", "/target/generated-sources", log,
new Service().getOutputDir(), true, true);
// First let's mangle the document if need be.
if (transform.getManglers() != null) {
log.debug("mangling IDL using "+transform.getManglers().size()+" pre validations");
for(DocumentMangler m : transform.getManglers()) {
log.debug(m.getName());
reader.mangle(m);
}
log.debug(reader.serialize());
}
for (Validator v: transform.getPreValidations()) {
reader.validate(v);
}
log.debug(reader.serialize());
reader.runMerge(transform.getTransformations());
reader.writeResult();
}
}