Files
nomulus/eppbindings/src/main/java/google/registry/xml/PeriodAdapter.java
T
gbrodmanandGitHub c9aba86833 Split XJC code into separate eppbindings subproject (#3244)
The generated XML / XJC code pretty much never changes but because
everything is lumped together in one compile task, we had to recompile
this every time anything else in core/ changes. It's technically
possible to use a separate source set for the XJC code while having it
remain in core/, but splitting it into a separate subproject gives
better separation and makes the caching / dependency graph clearer.

Pretty much all, except for the caching configuration, of the new
xjc/build.gradle is taken from the previous core/build.gradle.
2026-10-13 17:57:07 +00:00

38 lines
1.2 KiB
Java

// Copyright 2017 The Nomulus 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 google.registry.xml;
import static com.google.common.base.Strings.isNullOrEmpty;
import jakarta.xml.bind.annotation.adapters.XmlAdapter;
import java.time.Period;
import javax.annotation.Nullable;
/** Adapter to use Joda {@link Period} when marshalling XML. */
public class PeriodAdapter extends XmlAdapter<String, Period> {
@Nullable
@Override
public Period unmarshal(@Nullable String periodString) {
return isNullOrEmpty(periodString) ? null : Period.parse(periodString);
}
@Nullable
@Override
public String marshal(@Nullable Period period) {
return period == null ? null : period.toString();
}
}