mirror of
https://github.com/google/nomulus.git
synced 2025-07-14 06:55:20 +02:00
mv com/google/domain/registry google/registry
This change renames directories in preparation for the great package rename. The repository is now in a broken state because the code itself hasn't been updated. However this should ensure that git correctly preserves history for each file.
This commit is contained in:
parent
a41677aea1
commit
5012893c1d
2396 changed files with 0 additions and 0 deletions
187
java/google/registry/rde/RegistrarToXjcConverter.java
Normal file
187
java/google/registry/rde/RegistrarToXjcConverter.java
Normal file
|
@ -0,0 +1,187 @@
|
|||
// Copyright 2016 The Domain Registry Authors. All Rights Reserved.
|
||||
//
|
||||
// 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.google.domain.registry.rde;
|
||||
|
||||
import static com.google.common.base.MoreObjects.firstNonNull;
|
||||
|
||||
import com.google.domain.registry.model.registrar.Registrar;
|
||||
import com.google.domain.registry.model.registrar.RegistrarAddress;
|
||||
import com.google.domain.registry.xjc.contact.XjcContactE164Type;
|
||||
import com.google.domain.registry.xjc.rderegistrar.XjcRdeRegistrar;
|
||||
import com.google.domain.registry.xjc.rderegistrar.XjcRdeRegistrarAddrType;
|
||||
import com.google.domain.registry.xjc.rderegistrar.XjcRdeRegistrarElement;
|
||||
import com.google.domain.registry.xjc.rderegistrar.XjcRdeRegistrarPostalInfoEnumType;
|
||||
import com.google.domain.registry.xjc.rderegistrar.XjcRdeRegistrarPostalInfoType;
|
||||
import com.google.domain.registry.xjc.rderegistrar.XjcRdeRegistrarStatusType;
|
||||
import com.google.domain.registry.xjc.rderegistrar.XjcRdeRegistrarWhoisInfoType;
|
||||
|
||||
import java.math.BigInteger;
|
||||
|
||||
/** Utility class that turns {@link Registrar} as {@link XjcRdeRegistrarElement}. */
|
||||
final class RegistrarToXjcConverter {
|
||||
|
||||
private static final String UNKNOWN_EMAIL = "unknown@crr.com";
|
||||
private static final String UNKNOWN_CITY = "Unknown";
|
||||
private static final String UNKNOWN_ZIP = "00000";
|
||||
private static final String UNKNOWN_CC = "US";
|
||||
|
||||
/** Converts {@link Registrar} to {@link XjcRdeRegistrarElement}. */
|
||||
static XjcRdeRegistrarElement convert(Registrar registrar) {
|
||||
return new XjcRdeRegistrarElement(convertRegistrar(registrar));
|
||||
}
|
||||
|
||||
/** Converts {@link Registrar} to {@link XjcRdeRegistrar}. */
|
||||
static XjcRdeRegistrar convertRegistrar(Registrar model) {
|
||||
XjcRdeRegistrar bean = new XjcRdeRegistrar();
|
||||
|
||||
// o An <id> element that contains the Registry-unique identifier of
|
||||
// the registrar object. This <id> has a superordinate relationship
|
||||
// to a subordinate <clID>, <crRr> or <upRr> of domain, contact and
|
||||
// host objects.
|
||||
bean.setId(model.getClientIdentifier());
|
||||
|
||||
// o An <name> element that contains the name of the registrar.
|
||||
bean.setName(model.getRegistrarName());
|
||||
|
||||
// o An OPTIONAL <gurid> element that contains the ID assigned by
|
||||
// ICANN.
|
||||
Long ianaId = model.getIanaIdentifier();
|
||||
if (ianaId != null) {
|
||||
bean.setGurid(BigInteger.valueOf(ianaId));
|
||||
}
|
||||
|
||||
// o A <status> element that contains the operational status of the
|
||||
// registrar. Possible values are: ok, readonly and terminated.
|
||||
switch (model.getState()) {
|
||||
case ACTIVE:
|
||||
bean.setStatus(XjcRdeRegistrarStatusType.OK);
|
||||
break;
|
||||
case PENDING:
|
||||
case SUSPENDED:
|
||||
bean.setStatus(XjcRdeRegistrarStatusType.READONLY);
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException(String.format("Bad state: %s", model.getState()));
|
||||
}
|
||||
|
||||
// o One or two <postalInfo> elements that contain postal- address
|
||||
// information. Two elements are provided so that address
|
||||
// information can be provided in both internationalized and
|
||||
// localized forms; a "type" attribute is used to identify the two
|
||||
// forms. If an internationalized form (type="int") is provided,
|
||||
// element content MUST be represented in a subset of UTF-8 that can
|
||||
// be represented in the 7-bit US-ASCII character set. If a
|
||||
// localized form (type="loc") is provided, element content MAY be
|
||||
// represented in unrestricted UTF-8.
|
||||
RegistrarAddress localizedAddress = model.getLocalizedAddress();
|
||||
if (localizedAddress != null) {
|
||||
bean.getPostalInfos().add(convertPostalInfo(false, localizedAddress));
|
||||
}
|
||||
RegistrarAddress internationalizedAddress = model.getInternationalizedAddress();
|
||||
if (internationalizedAddress != null) {
|
||||
bean.getPostalInfos().add(convertPostalInfo(true, internationalizedAddress));
|
||||
}
|
||||
|
||||
// o An OPTIONAL <voice> element that contains the registrar's voice
|
||||
// telephone number.
|
||||
// XXX: Make Registrar use PhoneNumber.
|
||||
if (model.getPhoneNumber() != null) {
|
||||
XjcContactE164Type phone = new XjcContactE164Type();
|
||||
phone.setValue(model.getPhoneNumber());
|
||||
bean.setVoice(phone);
|
||||
}
|
||||
|
||||
// o An OPTIONAL <fax> element that contains the registrar's facsimile
|
||||
// telephone number.
|
||||
if (model.getFaxNumber() != null) {
|
||||
XjcContactE164Type fax = new XjcContactE164Type();
|
||||
fax.setValue(model.getFaxNumber());
|
||||
bean.setFax(fax);
|
||||
}
|
||||
|
||||
// o An <email> element that contains the registrar's email address.
|
||||
bean.setEmail(firstNonNull(model.getEmailAddress(), UNKNOWN_EMAIL));
|
||||
|
||||
// o An OPTIONAL <url> element that contains the registrar's URL.
|
||||
bean.setUrl(model.getUrl());
|
||||
|
||||
// o An OPTIONAL <whoisInfo> elements that contains whois information.
|
||||
// The <whoisInfo> element contains the following child elements:
|
||||
//
|
||||
// * An OPTIONAL <name> element that contains the name of the
|
||||
// registrar WHOIS server listening on TCP port 43 as specified in
|
||||
// [RFC3912].
|
||||
//
|
||||
// * An OPTIONAL <url> element that contains the name of the
|
||||
// registrar WHOIS server listening on TCP port 80/443.
|
||||
if (model.getWhoisServer() != null) {
|
||||
XjcRdeRegistrarWhoisInfoType whoisInfo = new XjcRdeRegistrarWhoisInfoType();
|
||||
whoisInfo.setName(model.getWhoisServer());
|
||||
bean.setWhoisInfo(whoisInfo);
|
||||
}
|
||||
|
||||
// o A <crDate> element that contains the date and time of registrar-
|
||||
// object creation.
|
||||
bean.setCrDate(model.getCreationTime());
|
||||
|
||||
// o An OPTIONAL <upDate> element that contains the date and time of
|
||||
// the most recent RDE registrar-object modification. This element
|
||||
// MUST NOT be present if the rdeRegistrar object has never been
|
||||
// modified.
|
||||
bean.setUpDate(model.getLastUpdateTime());
|
||||
|
||||
return bean;
|
||||
}
|
||||
|
||||
private static XjcRdeRegistrarPostalInfoType convertPostalInfo(
|
||||
boolean isInt, RegistrarAddress model) {
|
||||
XjcRdeRegistrarPostalInfoType bean = new XjcRdeRegistrarPostalInfoType();
|
||||
bean.setType(isInt
|
||||
? XjcRdeRegistrarPostalInfoEnumType.INT
|
||||
: XjcRdeRegistrarPostalInfoEnumType.LOC);
|
||||
bean.setAddr(convertAddress(model));
|
||||
return bean;
|
||||
}
|
||||
|
||||
private static XjcRdeRegistrarAddrType convertAddress(RegistrarAddress model) {
|
||||
XjcRdeRegistrarAddrType bean = new XjcRdeRegistrarAddrType();
|
||||
|
||||
// * A <addr> element that contains address information associated
|
||||
// with the registrar. The <addr> element contains the following
|
||||
// child elements:
|
||||
//
|
||||
// + One, two, or three OPTIONAL <street> elements that contain
|
||||
// the registrar's street address.
|
||||
bean.getStreets().addAll(model.getStreet());
|
||||
|
||||
// + A <city> element that contains the registrar's city.
|
||||
bean.setCity(firstNonNull(model.getCity(), UNKNOWN_CITY));
|
||||
|
||||
// + An OPTIONAL <sp> element that contains the registrar's state
|
||||
// or province.
|
||||
bean.setSp(model.getState());
|
||||
|
||||
// + An OPTIONAL <pc> element that contains the registrar's
|
||||
// postal code.
|
||||
bean.setPc(firstNonNull(model.getZip(), UNKNOWN_ZIP));
|
||||
|
||||
// + A <cc> element that contains the registrar's country code.
|
||||
bean.setCc(firstNonNull(model.getCountryCode(), UNKNOWN_CC));
|
||||
|
||||
return bean;
|
||||
}
|
||||
|
||||
private RegistrarToXjcConverter() {}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue