Package chunmap.data.index

Source Code of chunmap.data.index.FeatureList

/**
* Copyright (c) 2009-2011, chunquedong(YangJiandong)
*
* This file is part of ChunMap project
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE(Version >=3)
*
* History:
*     2010-05-05  Jed Young  Creation
*/
package chunmap.data.index;

import java.util.ArrayList;
import java.util.List;

import chunmap.data.feature.Feature;
import chunmap.data.feature.FeatureSet;
import chunmap.data.feature.Shape;
import chunmap.data.feature.VisitAction;
import chunmap.data.feature.VisitFunc;
import chunmap.model.elem.Envelope;

public class FeatureList extends FeatureSet{
  private List<Feature> _features;

    public FeatureList()
    {
        _features = new ArrayList<Feature>();
    }

    //------------------------------------------------------------------------
    @Override
    public void insert(Feature f)
    {
        _features.add(f);
    }
   
    @Override
    public boolean remove(Feature f)
    {
        return _features.remove(f);
    }
   
    @Override
    public void search(Envelope envelope, VisitFunc fun)
    {
        for (Feature f : _features)
        {
            if (envelope.hasIntersect(f.getEnvelop()))
            {
                if (!fun.execute(f)) break;
            }
        }
    }
   
    @Override
    public void select(Envelope envelope, VisitAction fun)
    {
        for (Feature f : _features)
        {
            if (!envelope.hasIntersect(f.getEnvelop())) continue;

            if (f instanceof Shape)
            {
                Shape shape = (Shape)f;
                if (envelope.hasIntersect(shape.getEnvelop()))
                {
                    fun.execute(f);
                }
            }
            else
            {
                fun.execute(f);
            }
        }
    }
   
    @Override
    public void find(VisitFunc fun)
    {
      for (Feature f : _features)
        {
            if (!fun.execute(f)) break;
        }
    }
   
    @Override
    public void each(VisitAction fun)
    {
      for (Feature f : _features)
        {
            fun.execute(f);
        }
    }

}
TOP

Related Classes of chunmap.data.index.FeatureList

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.