| 1109 | * @return String |
| 1110 | */ |
| 1111 | public static String getProviderInfo() { |
| 1112 | |
| 1113 | StringBuilder sb = new StringBuilder(128); |
| 1114 | sb.append(Timezone.class.getName()); |
| 1115 | sb.append(":[default-provider="); |
| 1116 | sb.append(DEFAULT_PROVIDER.getName()); |
| 1117 | sb.append(", registered={"); |
| 1118 | |
| 1119 | for (String key : PROVIDERS.keySet()) { |
| 1120 | ZoneModelProvider provider = PROVIDERS.get(key); |
| 1121 | if (provider != null) { // defensive against parallel threads |
| 1122 | sb.append("(name="); |
| 1123 | sb.append(provider.getName()); |
| 1124 | |
| 1125 | String location = provider.getLocation(); |
| 1126 | |
| 1127 | if (!location.isEmpty()) { |
| 1128 | sb.append(",location="); |
| 1129 | sb.append(location); |
| 1130 | } |
| 1131 | |
| 1132 | String version = provider.getVersion(); |
| 1133 | |
| 1134 | if (!version.isEmpty()) { |
| 1135 | sb.append(",version="); |
| 1136 | sb.append(version); |
| 1137 | } |
| 1138 | |
| 1139 | sb.append(')'); |
| 1140 | } |
| 1141 | } |
| 1142 | |
| 1143 | sb.append("}]"); |
| 1144 | return sb.toString(); |
| 1145 | |
| 1146 | } |
| 1147 | |
| 1148 | /** |
| 1149 | * <p>Tries to get the version of given registered zone model provider. </p> |