blob: 9d6c6c70fbb15654f03253f72447ab66a260f3b1 [file] [log] [blame]
/*
* Copyright 2012 Google LLC
*
* 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.auto.value;
import java.util.Map;
import javax.annotation.Nullable;
/**
* Simple value type for tests.
*
* @author emcmanus@google.com (Éamonn McManus)
*/
@AutoValue
public abstract class SimpleValueType {
// The getters here are formatted as an illustration of what getters typically look in real
// classes. In particular they have doc comments.
/** Returns a string that is a nullable string. */
@Nullable
public abstract String string();
/** Returns an integer that is an integer. */
public abstract int integer();
/** Returns a non-null map where the keys are strings and the values are longs. */
public abstract Map<String, Long> map();
public static SimpleValueType create(
@Nullable String string, int integer, Map<String, Long> map) {
// The subclass AutoValue_SimpleValueType is created by the annotation processor that is
// triggered by the presence of the @AutoValue annotation. It has a constructor for each
// of the abstract getter methods here, in order. The constructor stashes the values here
// in private final fields, and each method is implemented to return the value of the
// corresponding field.
return new AutoValue_SimpleValueType(string, integer, map);
}
}