models.datatable.LicenseFeatureDataTable.java Source code

Java tutorial

Introduction

Here is the source code for models.datatable.LicenseFeatureDataTable.java

Source

/*
 * Copyright (c) 2015 EMC Corporation
 * All Rights Reserved
 */
package models.datatable;

import com.emc.vipr.model.sys.licensing.License;
import com.emc.vipr.model.sys.licensing.LicenseFeature;
import com.google.common.collect.Lists;

import util.LicenseUtils;
import util.MessagesUtils;
import util.SetupUtils;
import util.StorageStatsWrapper;
import util.datatable.DataTable;

import java.util.List;

public class LicenseFeatureDataTable extends DataTable {
    public static final String STATUS_OVER_CAPACITY = "OVER_CAPACITY";
    public static final String STATUS_EXPIRED = "EXPIRED";
    public static final String STATUS_OK = "OK";
    public static final String STATUS_UNKNOWN = "UNKNOWN";
    public static final String STATUS_OPEN_SOURCE = "OPEN_SOURCE";

    public LicenseFeatureDataTable() {
        addColumn("name");
        addColumn("status").setRenderFunction("renderLicenseStatus");
        addColumn("serial");
        addColumn("expiry").setRenderFunction("render.expiryStatus");
    }

    public static List<FeatureInfo> features(License license, StorageStatsWrapper stats) {
        List<FeatureInfo> features = Lists.newArrayList();
        for (LicenseFeature lf : license.getLicenseFeatures()) {
            features.add(new FeatureInfo(lf, stats));
        }
        return features;
    }

    public static class FeatureInfo {
        private String id;
        private String name;
        private String expiry;
        private String status;
        private String serial;

        public FeatureInfo(LicenseFeature lf, StorageStatsWrapper stats) {
            this.id = lf.getModelId();
            this.name = LicenseUtils.getLabel(lf);
            this.serial = lf.getSerial();

            if (lf.getDateExpires() == null) {
                this.expiry = MessagesUtils.get("license.permenant.notice", lf.getDateIssued());
            } else {
                this.expiry = MessagesUtils.get("license.expires.notice", lf.getDateIssued(), lf.getDateExpires());
            }
            if (lf.isTrialLicense()) {
                this.expiry = this.expiry + " " + MessagesUtils.get("license.trial.notice");
            }

            if (SetupUtils.isOssBuild()) {
                this.status = STATUS_OPEN_SOURCE;
            } else if (stats.isOverCapacity(lf)) {
                this.status = STATUS_OVER_CAPACITY;
            } else if (lf.isExpired()) {
                this.status = STATUS_EXPIRED;
            } else if (lf.isLicensed()) {
                this.status = STATUS_OK;
            } else {
                this.status = STATUS_UNKNOWN;
            }
        }
    }
}