/**
 * Copyright (c) 2011-2014, OpenIoT
 *
 * This file is part of OpenIoT.
 *
 * OpenIoT is free software: you can redistribute it and/or modify it under the
 * terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * OpenIoT 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 Lesser General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with OpenIoT. If not, see <http://www.gnu.org/licenses/>.
 *
 * Contact: OpenIoT mailto: info@openiot.eu
 */
package org.openiot.integration;

import java.util.List;

public class WriteMetadataFile {

    String sensorName;
    String sensorID;
    double latitude;
    double longitude;
    List<String> parameters;
    List<String> lsmProperty;
    List<String> lsmUnit;

 
    public WriteMetadataFile(String sensorName, String sensorID,  double latitude, double longitude, List<String> param, List<String> lsmProp, List<String> lsmUnits) {

        this.sensorName = sensorName;
        this.sensorID = sensorID;
        this.latitude = latitude;
        this.longitude = longitude;
        this.parameters = param;
        this.lsmProperty = lsmProp;
        this.lsmUnit = lsmUnits;
    }

       public String createMetadata() {

        StringBuilder builder = new StringBuilder();
        builder.append(String.format("sensorName=%s\n", sensorName));
        builder.append(String.format("source=%s\n", sensorID));
        builder.append(String.format("sourceType=FER mobile sensors\n"));
        builder.append(String.format("sensorType=Virtual MGRS Sensor\n"));
        builder.append(String.format("information=Virtual Sensor for designated area\n"));
        builder.append(String.format("author=FER\n"));
        builder.append(String.format("latitude=%s\n", String.valueOf(latitude)));
        builder.append(String.format("longitude=%s\n", String.valueOf(longitude)));
        builder.append(String.format("feature=\"http://lsm.deri.ie/OpenIoT/openiotfeature\"\n"));
        
        String fields = "";
        for (int i = 0; i < parameters.size(); i++) {
            if (i > 0) {
                fields += ",";
            }
            fields += parameters.get(i);
        }

        builder.append(String.format("fields=\"%s\"\n", fields));
        
        for (int i = 0; i < parameters.size(); i++) {
            builder.append(String.format("field.%s.propertyName=\"%s\"\n", parameters.get(i), lsmProperty.get(i)));
            builder.append(String.format("field.%s.unit=%s\n", parameters.get(i), lsmUnit.get(i)));
        }
        
        return builder.toString();

    }
}

