Package org.jboss.forge.parser.java.ast

Source Code of org.jboss.forge.parser.java.ast.ModifierAccessor

package org.jboss.forge.parser.java.ast;

import org.eclipse.jdt.core.dom.BodyDeclaration;
import org.eclipse.jdt.core.dom.Modifier;
import org.eclipse.jdt.core.dom.Modifier.ModifierKeyword;

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

public class ModifierAccessor
{
   public boolean hasModifier(BodyDeclaration body, final ModifierKeyword modifier)
   {
      boolean result = false;
      List<Modifier> modifiers = getModifiers(body);
      for (Modifier m : modifiers)
      {
         if (m.getKeyword() == modifier)
         {
            result = true;
         }
      }
      return result;
   }

   private List<Modifier> getModifiers(BodyDeclaration body)
   {
      List<Modifier> result = new ArrayList<Modifier>();
      List<?> modifiers = body.modifiers();
      for (Object m : modifiers)
      {
         if (m instanceof Modifier)
         {
            Modifier mod = (Modifier) m;
            result.add(mod);
         }
      }
      return result;
   }

   @SuppressWarnings("unchecked")
   public List<Modifier> clearVisibility(BodyDeclaration body)
   {
      List<Modifier> modifiers = getModifiers(body);

      List<Modifier> toBeRemoved = new ArrayList<Modifier>();
      for (Modifier modifier : modifiers)
      {
         if (modifier.isPrivate() || modifier.isProtected() || modifier.isPublic())
         {
            toBeRemoved.add(modifier);
         }
      }

      body.modifiers().removeAll(toBeRemoved);
      return modifiers;
   }

   @SuppressWarnings("unchecked")
   public void addModifier(BodyDeclaration body, ModifierKeyword keyword)
   {
      body.modifiers().add(body.getAST().newModifier(keyword));
   }

   @SuppressWarnings("unchecked")
   public void removeModifier(BodyDeclaration body, ModifierKeyword keyword)
   {
      List<Modifier> modifiers = getModifiers(body);

      List<Modifier> toBeRemoved = new ArrayList<Modifier>();
      for (Modifier modifier : modifiers)
      {
         if (modifier.getKeyword().equals(keyword))
         {
            toBeRemoved.add(modifier);
         }
      }

      body.modifiers().removeAll(toBeRemoved);
   }
}
TOP

Related Classes of org.jboss.forge.parser.java.ast.ModifierAccessor

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.