package org.activityinfo.server.command.handler; import com.google.inject.Inject; import org.activityinfo.legacy.shared.command.RequestChange; import org.activityinfo.legacy.shared.command.result.CommandResult; import org.activityinfo.legacy.shared.command.result.VoidResult; import org.activityinfo.legacy.shared.exception.CommandException; import org.activityinfo.server.database.hibernate.entity.User; import org.activityinfo.server.entity.change.ChangeHandler; import org.activityinfo.server.entity.change.ChangeRequestBuilder; import org.activityinfo.server.entity.change.ChangeType; public class RequestChangeHandler implements CommandHandler<RequestChange> { private final ChangeHandler changeHandler; @Inject public RequestChangeHandler(ChangeHandler changeHandler) { super(); this.changeHandler = changeHandler; } @Override public CommandResult execute(RequestChange cmd, User user) throws CommandException { ChangeRequestBuilder request = new ChangeRequestBuilder().setChangeType(ChangeType.valueOf(cmd.getChangeType())) .setEntityId(cmd.getEntityId()) .setEntityType(cmd.getEntityType()) .setUser(user); if (cmd.getPropertyMap() != null) { request.setProperties(cmd.getPropertyMap().getTransientMap()); } changeHandler.execute(request); return new VoidResult(); } }