com.netflix.eureka2.registry.InstanceInfoField Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of eureka-core Show documentation
Show all versions of eureka-core Show documentation
eureka-core developed by Netflix
The newest version!
/*
* Copyright 2014 Netflix, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.netflix.eureka2.registry;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
/**
* @author David Liu
*/
public class InstanceInfoField {
public enum Name {
// NO id or version
AppGroup,
App,
Asg,
VipAddress,
SecureVipAddress,
Ports,
Status,
HomePageUrl,
StatusPageUrl,
HealthCheckUrls,
MetaData,
DataCenterInfo;
// Since enum values are capitalized, and field names start with lowercase letter,
// for case of comparison we comper lowercased names.
private static final Map nameStrVsName = new HashMap();
static {
updateNames();
}
private static void updateNames() {
for (Name name : values()) {
nameStrVsName.put(name.name(), name);
}
}
public static Name forName(String name) {
return nameStrVsName.get(name);
}
}
// ==================================================================
public static final InstanceInfoField APPLICATION_GROUP
= new InstanceInfoField(Name.AppGroup, new Accessor() {
@Override
public InstanceInfo.Builder update(InstanceInfo.Builder builder, String value) {
return builder.withAppGroup(value);
}
@Override
public String getValue(InstanceInfo instanceInfo) {
return instanceInfo.getAppGroup();
}
});
// ==================================================================
public static final InstanceInfoField APPLICATION
= new InstanceInfoField(Name.App, new Accessor() {
@Override
public InstanceInfo.Builder update(InstanceInfo.Builder builder, String value) {
return builder.withApp(value);
}
@Override
public String getValue(InstanceInfo instanceInfo) {
return instanceInfo.getApp();
}
});
// ==================================================================
public static final InstanceInfoField ASG
= new InstanceInfoField(Name.Asg, new Accessor() {
@Override
public InstanceInfo.Builder update(InstanceInfo.Builder builder, String value) {
return builder.withAsg(value);
}
@Override
public String getValue(InstanceInfo instanceInfo) {
return instanceInfo.getAsg();
}
});
// ==================================================================
public static final InstanceInfoField VIP_ADDRESS
= new InstanceInfoField(Name.VipAddress, new Accessor() {
@Override
public InstanceInfo.Builder update(InstanceInfo.Builder builder, String value) {
return builder.withVipAddress(value);
}
@Override
public String getValue(InstanceInfo instanceInfo) {
return instanceInfo.getVipAddress();
}
});
// ==================================================================
public static final InstanceInfoField SECURE_VIP_ADDRESS
= new InstanceInfoField(Name.SecureVipAddress, new Accessor() {
@Override
public InstanceInfo.Builder update(InstanceInfo.Builder builder, String value) {
return builder.withSecureVipAddress(value);
}
@Override
public String getValue(InstanceInfo instanceInfo) {
return instanceInfo.getSecureVipAddress();
}
});
// ==================================================================
public static final InstanceInfoField> PORTS
= new InstanceInfoField>(Name.Ports, new Accessor>() {
@Override
public InstanceInfo.Builder update(InstanceInfo.Builder builder, HashSet value) {
return builder.withPorts(value);
}
@Override
public HashSet getValue(InstanceInfo instanceInfo) {
return instanceInfo.getPorts();
}
});
// ==================================================================
public static final InstanceInfoField STATUS
= new InstanceInfoField(Name.Status, new Accessor() {
@Override
public InstanceInfo.Builder update(InstanceInfo.Builder builder, InstanceInfo.Status value) {
return builder.withStatus(value);
}
@Override
public InstanceInfo.Status getValue(InstanceInfo instanceInfo) {
return instanceInfo.getStatus();
}
});
// ==================================================================
public static final InstanceInfoField HOMEPAGE_URL
= new InstanceInfoField(Name.HomePageUrl, new Accessor() {
@Override
public InstanceInfo.Builder update(InstanceInfo.Builder builder, String value) {
return builder.withHomePageUrl(value);
}
@Override
public String getValue(InstanceInfo instanceInfo) {
return instanceInfo.getHomePageUrl();
}
});
// ==================================================================
public static final InstanceInfoField STATUS_PAGE_URL
= new InstanceInfoField(Name.StatusPageUrl, new Accessor() {
@Override
public InstanceInfo.Builder update(InstanceInfo.Builder builder, String value) {
return builder.withStatusPageUrl(value);
}
@Override
public String getValue(InstanceInfo instanceInfo) {
return instanceInfo.getStatusPageUrl();
}
});
// ==================================================================
public static final InstanceInfoField> HEALTHCHECK_URLS
= new InstanceInfoField>(Name.HealthCheckUrls, new Accessor>() {
@Override
public InstanceInfo.Builder update(InstanceInfo.Builder builder, HashSet value) {
return builder.withHealthCheckUrls(value);
}
@Override
public HashSet getValue(InstanceInfo instanceInfo) {
return instanceInfo.getHealthCheckUrls();
}
});
// ==================================================================
public static final InstanceInfoField
© 2015 - 2025 Weber Informatics LLC | Privacy Policy