All Downloads are FREE. Search and download functionalities are using the official Maven repository.

hudson.model.ItemGroup Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 *
 * Copyright (c) 2004-2009 Oracle Corporation.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * 
 *    Kohsuke Kawaguchi
 *
 *
 *******************************************************************************/ 

package hudson.model;

import java.io.IOException;
import java.util.Collection;
import java.io.File;

/**
 * Represents a grouping inherent to a kind of {@link Item}s.
 *
 * @author Kohsuke Kawaguchi
 * @see ItemGroupMixIn
 */
public interface ItemGroup extends PersistenceRoot, ModelObject {

    /**
     * Gets the full name of this {@link ItemGroup}.
     *
     * @see Item#getFullName()
     */
    String getFullName();

    /**
     * @see Item#getFullDisplayName()
     */
    String getFullDisplayName();

    /**
     * Gets all the items in this collection in a read-only view.
     */
    Collection getItems();

    /**
     * Returns the path relative to the context root, like "foo/bar/zot/". Note
     * no leading slash but trailing slash.
     */
    String getUrl();

    /**
     * Gets the URL token that prefixes the URLs for child {@link Item}s. Like
     * "job", "item", etc.
     */
    String getUrlChildPrefix();

    /**
     * Gets the {@link Item} inside this group that has a given name.
     */
    T getItem(String name);

    /**
     * Assigns the {@link Item#getRootDir() root directory} for children.
     */
    File getRootDirFor(T child);

    /**
     * Internal method. Called by {@link Item}s when they are renamed by users.
     */
    void onRenamed(T item, String oldName, String newName) throws IOException;

    /**
     * Internal method. Called by {@link Item}s when they are deleted by users.
     */
    void onDeleted(T item) throws IOException;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy