Package io.fathom.cloud.lbaas.services

Source Code of io.fathom.cloud.lbaas.services.LbaasMappingMapper

package io.fathom.cloud.lbaas.services;

import io.fathom.cloud.openstack.client.loadbalance.model.LbaasMapping;
import io.fathom.cloud.protobuf.LbaasModel.LbaasMappingData;
import io.fathom.cloud.server.model.Project;

public class LbaasMappingMapper extends Mapper<LbaasMappingData, LbaasMapping> {

    public static final LbaasMappingMapper INSTANCE = new LbaasMappingMapper();

    @Override
    public LbaasMappingData toComparable(LbaasMappingData d) {
        LbaasMappingData.Builder b = LbaasMappingData.newBuilder(d);
        b.clearId();
        b.clearState();
        return b.build();
    }

    @Override
    public LbaasMapping toModel(LbaasMappingData data) {
        LbaasMapping model = new LbaasMapping();

        if (data.hasForwardUrl()) {
            model.forwardUrl = data.getForwardUrl();
        }

        if (data.hasIp()) {
            model.ip = data.getIp();
        }

        if (data.hasHost()) {
            model.host = data.getHost();
        }

        if (data.hasPort()) {
            model.port = data.getPort();
        }

        model.key = "id_" + data.getId();

        // model.systemKey = data.getSystemKey();

        return model;
    }

    @Override
    public LbaasMappingData toData(Project project, String systemKey, LbaasMapping mapping) {
        LbaasMappingData.Builder b = LbaasMappingData.newBuilder();

        if (mapping.forwardUrl != null) {
            b.setForwardUrl(mapping.forwardUrl);
        }

        if (mapping.host != null) {
            b.setHost(mapping.host);
        }

        if (mapping.ip != null) {
            b.setIp(mapping.ip);
        }

        if (mapping.key != null) {
            throw new UnsupportedOperationException();
        }
        if (mapping.port != null) {
            b.setPort(mapping.port);
        }

        b.setSystemKey(systemKey);
        b.setProjectId(project.getId());

        LbaasMappingData record = b.build();
        return record;
    }

}
TOP

Related Classes of io.fathom.cloud.lbaas.services.LbaasMappingMapper

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.