001/* 002 * The contents of this file are subject to the terms of the Common Development and 003 * Distribution License (the License). You may not use this file except in compliance with the 004 * License. 005 * 006 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the 007 * specific language governing permission and limitations under the License. 008 * 009 * When distributing Covered Software, include this CDDL Header Notice in each file and include 010 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL 011 * Header, with the fields enclosed by brackets [] replaced by your own identifying 012 * information: "Portions copyright [year] [name of copyright owner]". 013 * 014 * Copyright 2014 ForgeRock AS. 015 */ 016 017package org.forgerock.openig.audit; 018 019import static org.forgerock.util.Reject.*; 020 021import org.forgerock.openig.heap.Name; 022 023/** 024 * An AuditSource provides information about the {@link AuditEvent} source object (emitter). 025 * <p> 026 * It includes the following properties: 027 * <ul> 028 * <li>{@literal name}: the hierarchically composed {@link Name} of the source heap object (cannot be {@code 029 * null})</li> 030 * </ul> 031 * Notice that AuditSource is an immutable object. 032 * @see AuditEvent 033 */ 034public class AuditSource { 035 private final Name name; 036 037 /** 038 * Builds a new AuditSource with the given {@code name}. 039 * 040 * @param name 041 * heap object {@link Name} that is the source of the notification (cannot be {@code null}) 042 */ 043 public AuditSource(final Name name) { 044 this.name = checkNotNull(name); 045 } 046 047 /** 048 * Returns the unique {@link Name} of the heap object notification emitter (cannot be {@code null}). 049 * 050 * @return the unique {@link Name} of the heap object notification emitter 051 */ 052 public Name getName() { 053 return name; 054 } 055}