Package net.relatedwork.server.action

Source Code of net.relatedwork.server.action.SetAuthorMetaDataActionHandlerActionHandler

package net.relatedwork.server.action;

import javax.servlet.ServletContext;

//import org.mortbay.jetty.handler.ContextHandler;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Transaction;

import com.gwtplatform.dispatch.server.actionhandler.ActionHandler;

import net.relatedwork.server.ContextHelper;
import net.relatedwork.server.neo4jHelper.DBNodeProperties;
import net.relatedwork.server.neo4jHelper.NodeType;
import net.relatedwork.shared.dto.SetAuthorMetaDataActionHandler;
import net.relatedwork.shared.dto.SetAuthorMetaDataActionHandlerResult;

import com.google.gwt.i18n.client.Constants;
import com.google.inject.Inject;
import com.gwtplatform.dispatch.server.ExecutionContext;
import com.gwtplatform.dispatch.shared.ActionException;

public class SetAuthorMetaDataActionHandlerActionHandler
    implements
    ActionHandler<SetAuthorMetaDataActionHandler, SetAuthorMetaDataActionHandlerResult> {

  @Inject ServletContext servletContext;

 
  @Inject
  public SetAuthorMetaDataActionHandlerActionHandler() {
  }

  @Override
  public SetAuthorMetaDataActionHandlerResult execute(
      SetAuthorMetaDataActionHandler action, ExecutionContext context)
      throws ActionException {
   
    Node author = null;
    String uri = action.getMetaData().get("uri");
    try{
      author = ContextHelper.getUriIndex(servletContext).get(DBNodeProperties.URI, uri).getSingle();
      System.out.println("get author with uri: " + uri);
    } catch (Exception e) {
      System.out.println("URI INDEX ERROR. uri " + uri + " has more than one associated node.");
      return null;
    }
    Transaction tx = ContextHelper.getGraphDatabase(servletContext).beginTx();
    try {
      for (String key:action.getMetaData().keySet()){
        if (key.equals("uri"))continue;
        author.setProperty("metadata:"+key, action.getMetaData().get(key));
      }
      tx.success();
    }finally{
      tx.finish();
    }
   
    return new SetAuthorMetaDataActionHandlerResult(true);
  }

  @Override
  public void undo(SetAuthorMetaDataActionHandler action,
      SetAuthorMetaDataActionHandlerResult result, ExecutionContext context)
      throws ActionException {
  }

  @Override
  public Class<SetAuthorMetaDataActionHandler> getActionType() {
    return SetAuthorMetaDataActionHandler.class;
  }
}
TOP

Related Classes of net.relatedwork.server.action.SetAuthorMetaDataActionHandlerActionHandler

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.