All Downloads are FREE. Search and download functionalities are using the official Maven repository.

eu.agrosense.server.task.NewTaskAction Maven / Gradle / Ivy

The newest version!
/**
 * Copyright (C) 2008-2013 LimeTri. All rights reserved.
 *
 * AgroSense is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 *
 * There are special exceptions to the terms and conditions of the GPLv3 as it
 * is applied to this software, see the FLOSS License Exception
 * .
 *
 * AgroSense is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with
 * AgroSense. If not, see .
 */
package eu.agrosense.server.task;

import eu.agrosense.api.task.Task;
import eu.agrosense.api.task.TaskConstants;
import eu.agrosense.server.BaseSessionAction;
import eu.agrosense.server.storage.api.StorageService;
import eu.agrosense.shared.model.AgroURI;
import eu.agrosense.shared.model.AgroURIFactory;
import eu.agrosense.shared.model.Operation;
import java.util.List;
import org.opendolphin.core.comm.Command;
import org.opendolphin.core.comm.NamedCommand;
import org.opendolphin.core.server.DTO;
import org.opendolphin.core.server.Slot;
import org.opendolphin.core.server.comm.ActionRegistry;
import org.opendolphin.core.server.comm.NamedCommandHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 *
 * @author Timon Veenstra 
 */
public class NewTaskAction extends BaseSessionAction {

    private long current = 0;

    @Override
    public void registerIn(ActionRegistry registry) {
        super.registerIn(registry); //To change body of generated methods, choose Tools | Templates.
        registry.register(TaskConstants.CMD_NEW_TASK, new NamedCommandHandler() {

            @Override
            public void handleCommand(NamedCommand command, List response) {

                String nextTaskId = new Long(getStorageService().nextId(getCurrentFarmId(), Task.ITEM_ID_TYPE)).toString();
                String nextOperationId = new Long(getStorageService().nextId(getCurrentFarmId(), Operation.ITEM_ID_TYPE)).toString();
                AgroURIFactory iFactory = new AgroURIFactory(new AgroURI(getCurrentFarmId()));

                String taskId = iFactory.createURI(Task.ITEM_ID_TYPE, nextTaskId).toString();
                String operationId = iFactory.createURI(Operation.ITEM_ID_TYPE, nextOperationId).toString();
                //TODO generate and add job id
                
                DTO dto = new DTO(
                        Helper.slot(Task.PROP_ACTIVITY_FIELD_ID, "",taskId)
                      , Helper.slot(Task.PROP_ACTIVITY_ID, "",taskId)
                      , Helper.slot(Task.PROP_AGENT_ID, "",taskId)
                      , Helper.slot(Task.PROP_AGENT_AMOUNT, 0.0,taskId)
                      , Helper.slot(Task.PROP_AGENT_UNIT, "",taskId)
                      , Helper.slot(Task.PROP_CHECKED, "",taskId)
                      , Helper.slot(Task.PROP_CROP_FIELD_ID, "",taskId)
                      , Helper.slot(Task.PROP_DATE, "",taskId)
                      , Helper.slot(Task.PROP_DESCRIPTION, "",taskId)
                      , Helper.slot(Task.PROP_END_TIME, "",taskId)
                      , Helper.slot(Task.PROP_FARM_URI, getCurrentFarmId(),taskId)
                      , Helper.slot(Task.PROP_ID, taskId, taskId)
                      , Helper.slot(Task.PROP_JOB_ID, "",taskId)
                      , Helper.slot(Task.PROP_MACHINE_ID, "",taskId)
                      , Helper.slot(Task.PROP_NAME, "",taskId)
                      , Helper.slot(Task.PROP_OPERATION_ID, operationId,taskId)
                      , Helper.slot(Task.PROP_PARENT_ID, operationId,taskId)
                      , Helper.slot(Task.PROP_START_TIME, "",taskId)
                      , Helper.slot(Task.PROP_STATUS, "",taskId)
                      , Helper.slot(Task.PROP_WORKER_ID, "",taskId)
                      , Helper.slot(Task.PROP_WORK_WIDTH, "",taskId)
                );

                presentationModel(TaskConstants.ID_PREFIX_AGGREGATED_TASK + current++, TaskConstants.PM_TYPE_AGGREGATED_TASK, dto);

            }
        });
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy