Package de.FeatureModellingTool.Documentation

Source Code of de.FeatureModellingTool.Documentation.RtfDocsProducer

package de.FeatureModellingTool.Documentation;

import de.FeatureModellingTool.FeatureModel.FeatureModel;
import de.FeatureModellingTool.FeatureModel.Feature;
import de.FeatureModellingTool.FeatureModel.FeatureRelation;
import de.reuse.GroupMap;
import java.io.File;
import java.util.Map;
import java.util.Iterator;

/**
* Created by IntelliJ IDEA.
* User: YangJun
* Date: 2005-1-11
* Time: 20:23:23
*/
public class RtfDocsProducer implements ConstantDefinition{
    protected FeatureModel featureModel = null;
       protected File directory = null;
       protected RtfDocument rtfDocument=null;

        public RtfDocsProducer()
        {

        }

        public RtfDocsProducer(FeatureModel featureModel)
        {
            this.featureModel = featureModel;

        }

        public RtfDocsProducer(FeatureModel featureModel, File directory)
        {
            this.featureModel = featureModel;
            this.directory = directory;
                       
        }

        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 docsProduce(GroupMap gm, int fileOutMode,int featureOutMode//fileOutMode=1,���ļ���=2�����ļ���featureOutMode=1,����feature;=2,����feature
        {
            int viewnum=0;
            int featurenum=0;
            RtfDocument rtfDocument=new RtfDocumentImpl();
            rtfDocument.setDir(directory);

            if(fileOutMode==SINGLE)           //ֻ��һ���ļ��ķ���
            {
                rtfDocument.startNewFile(featureModel.getName()+".rtf"); //�����ļ�
                rtfDocument.newPage();
                rtfDocument.printBigTitle(featureModel.getName(),"",SINGLE);
            }
            Iterator viewIterator=gm.keySet().iterator();
            while(viewIterator!=null&&viewIterator.hasNext())          //��view���е���
            {
                viewnum++;
                featurenum=0;
                String viewName=(String)viewIterator.next();
                if(fileOutMode==MULTI)      //��view�����ļ��ķ���
                {
                    rtfDocument.startNewFile(new StringBuffer().append(viewName).append(".rtf").toString());//�½�һ���ļ����ļ���Ϊview��
                    rtfDocument.newPage();
                    rtfDocument.printBigTitle(featureModel.getName(),viewName,MULTI);
                    rtfDocument.newPage();
                }
               if(fileOutMode==ENTIRE) //��һ�ļ�����view��
               {
                   rtfDocument.newPage();
                   rtfDocument.printSmallTitle(""+viewnum+". "+viewName);
                    rtfDocument.printBlank();
                   rtfDocument.printBlank();
               }
                Iterator featureIterator=gm.get(viewName).iterator();
                while(featureIterator!=null&&featureIterator.hasNext())//��feature���е���
                {
                    String featureId=(String)featureIterator.next();
                    if(featureModel.containsFeature(featureId))
                    {
                        featurenum++;
                        Feature feature=featureModel.getFeature(featureId);
                        String stemp = "";
                        int count=0;
                        if(fileOutMode==COMPRESSED)
                            rtfDocument.printTinyTitle(featurenum+". "+feature.getName());
                        else
                            rtfDocument.printTinyTitle(""+viewnum+"."+featurenum+". "+feature.getName());
                        rtfDocument.printBlank();

                        //featurename
                        rtfDocument.printFeatureItemName("Name:  ");
                        if (feature.getName() == null)
                        {

                            rtfDocument.printFeatureItem("");
                        }
                        else
                            rtfDocument.printFeatureItem(feature.getName());

                        // description
                       if (feature.getDescription() == null||feature.getDescription().trim().length()<1 )
                        {
                            if(featureOutMode==1)rtfDocument.printFeatureItemName("Description:")//�������
                            rtfDocument.printFeatureItem("");
                        }
                        else{
                            rtfDocument.printFeatureItemName("Description:  ");
                            rtfDocument.printFeatureItem(feature.getDescription());
                        }


                       // Source
                       if (feature.getSource() == null||feature.getSource().trim().length()<1)
                        {
                            if(featureOutMode==1)rtfDocument.printFeatureItemName("Source:");     //�������
                            rtfDocument.printFeatureItem("");
                        }
                        else{
                            rtfDocument.printFeatureItemName("Source:  ");
                            rtfDocument.printFeatureItem(feature.getSource());
                        }

                        // Issue&Decision
                       if (feature.getIssueAndDecision() == null||feature.getIssueAndDecision().trim().length()<1)
                        {
                            if(featureOutMode==1)rtfDocument.printFeatureItemName("Issue&Decision:");     //�������
                            rtfDocument.printFeatureItem("");
                       }
                        else{
                            rtfDocument.printFeatureItemName("IssueDecision: ");
                            rtfDocument.printFeatureItem(feature.getIssueAndDecision());
                        }

                        // Note
                       if (feature.getNote() == null||feature.getNote().trim().length()<1)
                        {
                            if(featureOutMode==1)rtfDocument.printFeatureItemName("Note:");     //�������
                            rtfDocument.printFeatureItem("");
                        }
                        else{
                            rtfDocument.printFeatureItemName("Note:  ");
                            rtfDocument.printFeatureItem(feature.getNote());
                        }

                        rtfDocument.printFeatureItemName("Category:  ");
                        rtfDocument.printFeatureItem(feature.getCategory().getName());

                        rtfDocument.printFeatureItemName("Variability:  ");
                        rtfDocument.printFeatureItem(feature.getVariability().getName());

                        rtfDocument.printFeatureItemName("BindingTime:  ");
                        rtfDocument.printFeatureItem(feature.getBindingTime().getName());

                       rtfDocument.printBlank();
                        // parent
                       stemp = "";
                       count=0;
                       Map parentMap = featureModel.getFeatureRelation(FeatureRelation.DECOMPOSE, feature, false);
                       if (parentMap != null)
                         {
                             Iterator iteraParent = parentMap.keySet().iterator();
                               while (iteraParent != null&&iteraParent.hasNext())
                               {
                                   String id = (String) iteraParent.next();
                                   FeatureRelation fr = (FeatureRelation) parentMap.get(id);
                                   if (fr != null)
                                   {
                                       count++;
                                       if(count>1)stemp+="; ";
                                       Feature iteraFeature = fr.getStartFeature();
                                       stemp +=iteraFeature.getName();
                                   }
                               }
                       }
                        if(count>0||featureOutMode==1)//��parent ���������
                        {
                            rtfDocument.printFeatureItemName("Parent:");
                            rtfDocument.printFeatureItem(stemp);
                        }

                        // Include
                       stemp = "";
                       count=0;
                       Map includeMap = featureModel.getFeatureRelation(FeatureRelation.DECOMPOSE, feature, true);
                       if (includeMap != null)
                         {
                             Iterator iteraInclude = includeMap.keySet().iterator();
                               while (iteraInclude != null&&iteraInclude.hasNext())
                               {
                                   String id = (String) iteraInclude.next();
                                   FeatureRelation fr = (FeatureRelation) includeMap.get(id);
                                   if (fr != null)
                                   {
                                       count++;
                                       if(count>1)stemp+="; ";
                                       Feature iteraFeature = fr.getEndFeature();
                                       stemp +=iteraFeature.getName();
                                   }
                               }
                       }
                        if(count>0||featureOutMode==1)//��include ���������
                        {
                            rtfDocument.printFeatureItemName("Include:");
                            rtfDocument.printFeatureItem(stemp);
                        }

                        //DimensionValue
                        stemp = "";
                       count=0;
                       Map dimensionMap = featureModel.getFeatureRelation(FeatureRelation.ATTRIBUTE, feature, true);
                       if (dimensionMap != null)
                         {
                             Iterator iteraDimension = dimensionMap.keySet().iterator();
                               while (iteraDimension != null&&iteraDimension.hasNext())
                               {
                                   String id = (String) iteraDimension.next();
                                   FeatureRelation fr = (FeatureRelation) dimensionMap.get(id);
                                   if (fr != null)
                                   {
                                       count++;
                                       if(count>1)stemp+="; ";
                                       Feature iteraFeature = fr.getEndFeature();
                                       stemp +=iteraFeature.getName();
                                   }
                               }
                       }
                        if(count>0||featureOutMode==1)//��dimension ���������
                        {
                            rtfDocument.printFeatureItemName("Dimension:");
                            rtfDocument.printFeatureItem(stemp);
                        }

                       //Requiring
                       stemp = "";
                       count=0;
                       Map requiringMap = featureModel.getFeatureRelation(FeatureRelation.REQUIRE, feature, true);
                       if (requiringMap != null)
                         {
                             Iterator iteraRequiring = requiringMap.keySet().iterator();
                               while (iteraRequiring != null&&iteraRequiring.hasNext())
                               {
                                   String id = (String) iteraRequiring.next();
                                   FeatureRelation fr = (FeatureRelation) requiringMap.get(id);
                                   if (fr != null)
                                   {
                                       count++;
                                       if(count>1)stemp+="; ";
                                       Feature iteraFeature = fr.getEndFeature();
                                       stemp +=iteraFeature.getName();
                                   }
                               }
                       }
                        if(count>0||featureOutMode==1)//��requiring ���������
                        {
                            rtfDocument.printFeatureItemName("Requiring:");
                            rtfDocument.printFeatureItem(stemp);
                        }

                        //Required
                        stemp = "";
                       count=0;
                       Map requiredMap = featureModel.getFeatureRelation(FeatureRelation.REQUIRE, feature, false);
                       if (requiredMap != null)
                         {
                             Iterator iteraRequired = requiredMap.keySet().iterator();
                               while (iteraRequired != null&&iteraRequired.hasNext())
                               {
                                   String id = (String) iteraRequired.next();
                                   FeatureRelation fr = (FeatureRelation) requiringMap.get(id);
                                   if (fr != null)
                                   {
                                       count++;
                                       if(count>1)stemp+="; ";
                                       Feature iteraFeature = fr.getStartFeature();
                                       stemp +=iteraFeature.getName();
                                   }
                               }
                       }
                        if(count>0||featureOutMode==1)//��required ���������
                        {
                            rtfDocument.printFeatureItemName("Required:");
                            rtfDocument.printFeatureItem(stemp);
                        }

                       //Mutex
                       stemp = "";
                       count=0;
                       Map mutexMap = featureModel.getFeatureRelation(FeatureRelation.EXCLUDE, feature, true);
                       if (mutexMap != null)
                         {
                             Iterator iteraMutex = mutexMap.keySet().iterator();
                               while (iteraMutex != null&&iteraMutex.hasNext())
                               {
                                   String id = (String) iteraMutex.next();
                                   FeatureRelation fr = (FeatureRelation) mutexMap.get(id);
                                   if (fr != null)
                                   {
                                       count++;
                                       if(count>1)stemp+="; ";
                                       Feature iteraFeature = fr.getEndFeature();
                                       stemp +=iteraFeature.getName();
                                   }
                               }
                       }
                       Map mutexMap2 = featureModel.getFeatureRelation(FeatureRelation.EXCLUDE, feature, false);
                       if (mutexMap2 != null)
                         {
                             Iterator iteraMutex2 = mutexMap2.keySet().iterator();
                               while (iteraMutex2 != null&&iteraMutex2.hasNext())
                               {
                                   String id = (String) iteraMutex2.next();
                                   FeatureRelation fr = (FeatureRelation) mutexMap2.get(id);
                                   if (fr != null)
                                   {
                                       count++;
                                       if(count>1)stemp+="; ";
                                       Feature iteraFeature = fr.getStartFeature();
                                       stemp +=iteraFeature.getName();
                                   }
                               }
                       }
                        if(count>0||featureOutMode==1)//��Mutex���������
                        {
                            rtfDocument.printFeatureItemName("Mutex:");
                            rtfDocument.printFeatureItem(stemp);
                        }


                    }
                    rtfDocument.printBlank();
                }
                if(fileOutMode==MULTI)rtfDocument.fileFlush();
            }
             if(fileOutMode == SINGLE)rtfDocument.fileFlush();

        }

}
TOP

Related Classes of de.FeatureModellingTool.Documentation.RtfDocsProducer

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.