ActionFactory.java :  » App » smsselector » com » rudolfheszele » smsselector » model » Android Open Source

Android Open Source » App » smsselector 
smsselector » com » rudolfheszele » smsselector » model » ActionFactory.java
package com.rudolfheszele.smsselector.model;

public class ActionFactory
{
  public enum ActionId implements Id
  {
    MOVE_TO_FOLDER("Move to folder", 0),
    DELETE_MESSAGE("Delete message", 1);
    
    @Override
    public int getIntValue()
    {
      return mIntValue;
    }
    
    @Override
    public String getName()
    {
      return mRuleName;
    }
    
    private ActionId(String ruleName, int intValue)
    {
      mRuleName = ruleName;
      mIntValue = intValue;
    }
    
    private int mIntValue;
    private String mRuleName;
  }
  
  public static SmsSelectorRuleSet.Action createAction(ActionId actionId, String additionalInfo)
  {
    SmsSelectorRuleSet.Action action = null;
    
    switch(actionId)
    {
      case MOVE_TO_FOLDER:
        action = new MoveToFolderAction(additionalInfo);
        break;
      case DELETE_MESSAGE:
        action = new DeleteMessageAction();
        break;
    }
    if(action != null)
      action.setId(actionId);
    
    return action;
  }
  
  public static ActionId getActionId(int actionId)
  {
    ActionId[] actionIds = ActionId.values();
    
    for(int i = 0; i < actionIds.length; i++)
    {
      if(actionId == actionIds[i].getIntValue())
        return actionIds[i];
    }
    
    return null;
  }
  
  public static ActionId getActionId(String actionName)
  {
    ActionId[] actionIds = ActionId.values();
    
    for(int i = 0; i < actionIds.length; i++)
    {
      if(actionName.equals(actionIds[i].getName()))
        return actionIds[i];
    }
    
    return null;
  }
  
  public static int getNumberOfActions()
  {
    return ActionId.values().length;
  }
}

class MoveToFolderAction implements SmsSelectorRuleSet.Action
{
  public MoveToFolderAction(String folder)
  {
    mFolder = folder;
  }

  @Override
  public Object doAction(Object object)
  {
    SmsSelectorSmsMessage message = (SmsSelectorSmsMessage)object;
    
    message.setLogicalFolder(mFolder);
    
    return message;
  }
  
  @Override
  public String getAdditionalInfo()
  {
    return mFolder;
  }

  @Override
  public Id getId()
  {
    return mId;
  }
  
  @Override
  public void setId(Id id)
  {
    mId = id;
  }
  
  private Id mId;
  private String mFolder;
}

class DeleteMessageAction implements SmsSelectorRuleSet.Action
{

  @Override
  public Object doAction(Object object)
  {
    SmsSelectorSmsMessage message = (SmsSelectorSmsMessage)object;
    
    message.deleteMessage();
    
    return message;
  }
  
  @Override
  public String getAdditionalInfo()
  {
    return null;
  }

  @Override
  public Id getId()
  {
    return mId;
  }
  
  @Override
  public void setId(Id id)
  {
    mId = id;
  }
  
  private Id mId;
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.