001    /*
002     * Copyright (C) 2006-2007 the original author or authors.
003     *
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     *     http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    
017    package org.codehaus.gmaven.runtime.v1_5.stubgen;
018    
019    import org.codehaus.gmaven.runtime.support.stubgen.model.ImportDef;
020    import org.codehaus.gmaven.runtime.support.stubgen.model.ModelFactorySupport;
021    import org.codehaus.gmaven.runtime.support.stubgen.model.SourceDef;
022    import org.codehaus.groovy.control.ResolveVisitor;
023    
024    /**
025     * Creates a stub model for Groovy 1.5.
026     *
027     * @version $Id: ModelFactoryImpl.java 52 2009-11-22 10:32:14Z user57 $
028     * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
029     */
030    public class ModelFactoryImpl
031        extends ModelFactorySupport
032    {
033        public ModelFactoryImpl() {
034            super(new ParserFactoryImpl());
035        }
036        
037        protected void addDefaultImports(final SourceDef model) {
038            assert model != null;
039    
040            for (int i=0; i< ResolveVisitor.DEFAULT_IMPORTS.length; i++) {
041                ImportDef def = new ImportDef();
042    
043                String pkg = ResolveVisitor.DEFAULT_IMPORTS[i];
044    
045                // Strip off the last '.' from the import
046                if (pkg.endsWith(".")) {
047                    pkg = pkg.substring(0, pkg.length() - 1);
048                }
049    
050                def.setPackage(pkg);
051                def.setWildcard(true);
052    
053                model.addImport(def);
054            }
055    
056            model.addImport(new ImportDef("java.math", "BigDecimal"));
057            model.addImport(new ImportDef("java.math", "BigInteger"));
058        }
059    }