TermTreeModel.java

00001 /* 
00002 ** Author(s): Miguel Calejo
00003 ** Contact:   interprolog@declarativa.com, http://www.declarativa.com
00004 ** Copyright (C) Declarativa, Portugal, 2000-2002
00005 ** Use and distribution, without any warranties, under the terms of the 
00006 ** GNU Library General Public License, readable in http://www.fsf.org/copyleft/lgpl.html
00007 */
00008 package com.declarativa.interprolog.gui;
00009 import com.declarativa.interprolog.*;
00010 import java.io.Serializable;
00011 
00014 public class TermTreeModel implements Serializable { 
00015         TermModel node;
00016         TermTreeModel[] children;
00017         
00018         public static ObjectExamplePair example(){
00019                 TermTreeModel[] fooB = new TermTreeModel[1];
00020                 fooB[0]=new TermTreeModel(new TermModel(new Integer(2)),null);
00021                 return new ObjectExamplePair("TermTreeModel",
00022                         new TermTreeModel(new TermModel(new Integer(1)),null),
00023                         new TermTreeModel(new TermModel("term",new TermModel[1]),fooB)
00024                         );
00025         }
00026          
00027         public TermTreeModel(TermModel root,TermTreeModel[] children){
00028                 if (children==null) this.children = new TermTreeModel[0];
00029                 else this.children=children;
00030                 node = root;
00031         }
00032         int depth(){
00033                 if (children.length==0) return 1;
00034                 int maxdepth=0;
00035                 for(int c=0; c<children.length; c++){
00036                         int cache = children[c].depth();
00037                         if (cache>maxdepth) maxdepth=cache;
00038                 }
00039                 return maxdepth+1;
00040         }
00041         TermListModel topList(){
00042                 TermModel[] temp = new TermModel[children.length];
00043                 for (int i=0; i<children.length;i++)
00044                         temp[i]=children[i].node;
00045                 return new TermListModel(temp);
00046         }
00047 }

Generated on Wed Jul 26 13:30:44 2006 for XSB by  doxygen 1.4.5