1 /* 2 * JBoss, Home of Professional Open Source 3 * Copyright 2014, Red Hat, Inc. and/or its affiliates, and individual 4 * contributors by the @authors tag. See the copyright.txt in the 5 * distribution for a full listing of individual contributors. 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.jboss.as.quickstarts.tasksJsf; 18 19 import java.util.List; 20 21 22 /** 23 * <p> 24 * Operations with cached list of tasks for current user. 25 * </p> 26 * 27 * <p> 28 * Implementation needs to preserve contracts for {@link #getAll()} and {@link #invalidate()}. 29 * </p> 30 * 31 * @author Lukas Fryc 32 * 33 */ 34 public interface TaskList { 35 36 /** 37 * <p> 38 * Obtains list of tasks for current user. 39 * </p> 40 * 41 * <p> 42 * Caches current value; cache can be invalidated using {@link #invalidate()}. 43 * 44 * <p> 45 * Delegates to persistence layer at most once per request or once per call of {@link #invalidate()}. 46 * </p> 47 * 48 * @return 49 */ 50 List<Task> getAll(); 51 52 /** 53 * Invalidates all caches which this lists holds. 54 */ 55 void invalidate(); 56 }