Skip to content
Snippets Groups Projects

feat: Update cache service to use CacheWrapper object

6 files
+ 106
54
Compare changes
  • Side-by-side
  • Inline
Files
6
 
/*********************************************************************
 
* Copyright (c) 2023 Eclipse Foundation.
 
*
 
* This program and the accompanying materials are made
 
* available under the terms of the Eclipse Public License 2.0
 
* which is available at https://www.eclipse.org/legal/epl-2.0/
 
*
 
* Author: Zachary Sabourin <zachary.sabourin@eclipse-foundation.org>
 
*
 
* SPDX-License-Identifier: EPL-2.0
 
**********************************************************************/
 
package org.eclipsefoundation.core.model;
 
 
import java.util.Optional;
 
 
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
 
import com.google.auto.value.AutoValue;
 
 
@AutoValue
 
@JsonDeserialize(builder = AutoValue_CacheWrapper.Builder.class)
 
public abstract class CacheWrapper<T> {
 
 
public abstract Optional<T> getData();
 
 
public abstract Optional<Class<?>> getErrorType();
 
 
public static <T> Builder<T> builder() {
 
return new AutoValue_CacheWrapper.Builder<T>().setData(Optional.empty()).setErrorType(Optional.empty());
 
}
 
 
@AutoValue.Builder
 
@JsonPOJOBuilder(withPrefix = "set")
 
public abstract static class Builder<T> {
 
 
public abstract Builder<T> setData(Optional<T> data);
 
 
public abstract Builder<T> setErrorType(Optional<Class<?>> clazz);
 
 
public abstract CacheWrapper<T> build();
 
}
 
}
Loading