Package de.FeatureModellingTool.Documentation

Source Code of de.FeatureModellingTool.Documentation.DocsProducerImpl

package de.FeatureModellingTool.Documentation;

import de.FeatureModellingTool.FeatureModel.FeatureModel;
import de.FeatureModellingTool.FeatureModel.Feature;
import de.FeatureModellingTool.DictEditor.*;
import de.reuse.GroupMap;

import java.io.File;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.util.Map;
import java.util.Iterator;
import java.util.Date;
import java.util.ArrayList;

/**
* User: Raymond
* Date: 2003-11-7
* Time: 16:42:42
*/
public class DocsProducerImpl implements DocsProducer
{
    protected FeatureModel featureModel = null;
    protected HtmlGeneratorImpl featureG = null;
    protected File fileProttp = null;
    protected File directory = null;

    protected static String htmlModel = ConstantDefinition.RESOURCEA_PATH + "featureModelForDocs.html";

    public DocsProducerImpl()
    {

    }

    public DocsProducerImpl(FeatureModel featureModel)
    {
        this.featureModel = featureModel;
        this.featureG = new HtmlGeneratorImpl(htmlModel, featureModel);
    }

    public DocsProducerImpl(FeatureModel featureModel, File directory)
    {
        this.featureModel = featureModel;
        this.directory = directory;
        java.net.URL url = getClass().getResource(htmlModel);
        this.featureG = new HtmlGeneratorImpl(new File(url.getFile()), featureModel);
    }

    public void setDirectory(File directory)
    {
        this.directory = directory;
    }

    public File getDirectory()
    {
        return directory;
    }

    public void setFeatureModel(FeatureModel featureModel)
    {
        this.featureModel = featureModel;
    }

    public FeatureModel getFeatureModel()
    {
        return featureModel;
    }

    public void setFileProttp(File fileProttp)
    {
        this.fileProttp = fileProttp;
    }

    public File getFileProttp()
    {
        return fileProttp;
    }

    public void featuresProduce()
    {
        String filename = directory.getAbsolutePath()+ File.separator + "features";
        File newDir = new File(filename);
        if (!newDir.exists())
        {
            if (!newDir.mkdir())
            {
                System.out.println("can not create directory features");
                return;
            }
        }
        else
        {
            System.out.println("Directory features already existed")//�������ǣ���
            return;
        }

        Map allFeatures = this.featureModel.getAllFeature();
        if (allFeatures != null)
        {
            Iterator featureIterator = allFeatures.values().iterator();

            while (featureIterator.hasNext())
            {
                Feature feature = (Feature) featureIterator.next();

                featureG.initFeature(feature, false);
                featureG.produceHtml();

                filename = newDir.getAbsolutePath() + File.separator +feature.getName()+"@"+ feature.getID() + "." + "html";
                featureG.outFile(filename);
            }
        }
    }

    public void othersProduce(GroupMap gm)
    {
        initCopy();
        featuresListProduce();
        viewsListProduce(gm);
        viewsProduce(gm);
    }

    protected void initCopy()
    {
        String src = getClass().getResource(ConstantDefinition.RESOURCEA_PATH + "base").getPath();
        String to = directory.getAbsolutePath();
        try
        {
            featureG.copy(src, to, true);
        } catch (FileNotFoundException fnfe)
        {
            System.out.println(fnfe);
        } catch (IOException ioe)
        {
            System.out.println(ioe);
        }
    }


    protected void featuresListProduce()
    {
        String filaname = ConstantDefinition.RESOURCEA_PATH + "allfeatures-frame.html";
        filaname = getClass().getResource(filaname).getFile();
        featureG.setHtmlModel(filaname);

        Date date = new Date();
        String instance = "";
        String instance2 = "";
        Map allFeatures = this.featureModel.getAllFeature();
        if (allFeatures != null)
        {
            Iterator featureIterator = allFeatures.values().iterator();

            while (featureIterator.hasNext())
            {
                Feature feature = (Feature) featureIterator.next();
                instance += "<A HREF='features/" +feature.getName()+"@" + feature.getID() + ".html'";
                instance2 += "<A HREF='features/" +feature.getName()+"@" + feature.getID() + ".html'";
                instance += " TARGET='featureFrame'";
                instance += ">" + feature.getName() + "</A> <BR>  \r";
                instance2 += ">" + feature.getName() + "</A> <BR>  \r";
            }
        }

        ArrayList keyList = new ArrayList();
        ArrayList instanceList = new ArrayList();

        keyList.add("@fileTag");
        instanceList.add("All Features");
        keyList.add("@time");
        instanceList.add(date.toString());
        keyList.add("@featuresList");
        instanceList.add(instance);

        featureG.produceHtml(keyList, instanceList);
        String filename = directory.getAbsolutePath()+ File.separator + "allfeatures-frame.html";
        featureG.outFile(filename);

        instanceList.remove(instance);
        instanceList.add(instance2);
        featureG.produceHtml(keyList, instanceList);
        filename = directory.getAbsolutePath()+ File.separator + "allfeatures-noframe.html";
        featureG.outFile(filename);
    }

    protected void viewsListProduce(GroupMap gm)
    {
        String filaname = ConstantDefinition.RESOURCEA_PATH + "overview-frame.html";
        filaname = getClass().getResource(filaname).getFile();
        featureG.setHtmlModel(filaname);

        Date date = new Date();
        String instance = "";
        Iterator keyIterator = gm.keySet().iterator();
        while (keyIterator != null && keyIterator.hasNext())
        {
            String viewName = (String) keyIterator.next();
            instance += "<FONT CLASS='FrameItemFont'><A HREF='views/" + viewName + ".html'";
            instance += " TARGET='viewFrame'>" + viewName + "</A> </FONt><BR>  \r";
        }

        ArrayList keyList = new ArrayList();
        ArrayList instanceList = new ArrayList();

        keyList.add("@time");
        instanceList.add(date.toString());
        keyList.add("@viewsList");
        instanceList.add(instance);

        featureG.produceHtml(keyList, instanceList);
        String filename = directory.getAbsolutePath() + File.separator + "overview-frame.html";
        featureG.outFile(filename);
    }

    public void viewsProduce(GroupMap gm)
    {
        String filename = directory.getAbsolutePath() + File.separator + "views";
        File newDir = new File(filename);
        if (!newDir.exists())
        {
            if (!newDir.mkdir())
            {
                System.out.println("can not create directory views");
                return;
            }
        }
        else
        {
            System.out.println("Directory views already existed");
            return;
        }

        String filaname = ConstantDefinition.RESOURCEA_PATH + "allfeatures-frame.html";
        filaname = getClass().getResource(filaname).getFile();
        featureG.setHtmlModel(filaname);
        Date date = new Date();
        String instance = "";

        Iterator keyIterator = gm.keySet().iterator();
        while (keyIterator != null && keyIterator.hasNext())
        {
            String viewName = (String) keyIterator.next();
            instance = "";
            Iterator idIterator = gm.get(viewName).iterator();
            while (idIterator != null && idIterator.hasNext())
            {
                String id = (String) idIterator.next();
                if (featureModel.containsFeature(id))
                {
                    Feature feature = featureModel.getFeature(id);
                    instance += "<A HREF='../features/"+feature.getName()+"@" + feature.getID() + ".html'";
                    instance += " TARGET='featureFrame'";
                    instance += ">" + feature.getName() + "</A> <BR>  \r";
                }
            }

            ArrayList keyList = new ArrayList();
            ArrayList instanceList = new ArrayList();

            keyList.add("@fileTag");
            instanceList.add(viewName);
            keyList.add("@time");
            instanceList.add(date.toString());
            keyList.add("@featuresList");
            instanceList.add(instance);

            featureG.produceHtml(keyList, instanceList);
            filename =  newDir.getAbsolutePath() + File.separator + viewName + ".html";
            featureG.outFile(filename);
        }

    }

}

TOP

Related Classes of de.FeatureModellingTool.Documentation.DocsProducerImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.