@@ -0,0 +1,3092 @@
+/**%0A * Licensed to Jasig under one or more contributor license%0A * agreements. See the NOTICE file distributed with this work%0A * for additional information regarding copyright ownership.%0A * Jasig licenses this file to you under the Apache License,%0A * Version 2.0 (the %22License%22); you may not use this file%0A * except in compliance with the License. You may obtain a%0A * copy of the License at:%0A *%0A * http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing,%0A * software distributed under the License is distributed on%0A * an %22AS IS%22 BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY%0A * KIND, either express or implied. See the License for the%0A * specific language governing permissions and limitations%0A * under the License.%0A */%0Apackage org.jasig.portal.layout.profile.dao;%0A%0Aimport org.jasig.portal.layout.profile.IProfileSelection;%0A%0A/**%0A * DAO API modeling user selection of a profile.%0A *%0A * Note that this is *not* an API about storing actual Profiles in all their complexity.%0A * Rather, this is an API about storing the user preference for a profile referenced by its fname.%0A * @since uPortal 4.2%0A */%0Apublic interface IProfileSelectionDao %7B%0A%0A    /**%0A     * Creates, initializes, and persists a new %7B@link org.jasig.portal.layout.profile.IProfileSelection%7D%0A     * representing the given user's selection of the given profile.%0A     * @param userName non-null username of user who has made the selection%0A     * @param profileFName fname of the selected profile, or null indicating no selection%0A     * @return a newly created, initialized, and persisted %7B@link org.jasig.portal.layout.profile.IProfileSelection%7D%0A     * @throws IllegalArgumentException if userName is null%0A     * @throws org.springframework.dao.DataIntegrityViolationException if the user already has a profile selection.%0A     */%0A    public IProfileSelection createProfileSelection(String userName, String profileFName);%0A%0A    /**%0A     * Get the %7B@link IProfileSelection%7D for the given user, or null if that user has no persisted selection.%0A     * @param userName non-null username of user who may have made a profile selection%0A     * @return the profile selection for the given user, or null if no selection%0A     * @throws IllegalArgumentException if userName is null%0A     */%0A    public IProfileSelection readProfileSelectionForUser(String userName);%0A%0A    /**%0A     * Persists changes to a %7B@link IProfileSelection%7D.%0A     * @param profileSelection non-null potentially changed profileSelection to be persisted.%0A     * @return the same profile selection, with its change persisted.%0A     * @throws java.lang.IllegalArgumentException if profileSelection is null%0A     */%0A    public IProfileSelection updateProfileSelection(IProfileSelection profileSelection);%0A%0A    /**%0A     * Removes the specified %7B@link IProfileSelection%7D from the persistent store.%0A     * @param profileSelection non-null profile selection to be forgotten%0A     * @throws java.lang.IllegalArgumentException if profileSelection is null%0A     */%0A    public void deleteProfileSelection(IProfileSelection profileSelection);%0A%0A%7D%0A

Add IProfileSelectionDao.