summaryrefslogblamecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImagePermissions.java
blob: e254b085a287da936a86677d2d7219482d1cedbf (plain) (tree)































































                                                                                                                      
package org.openslx.bwlp.sat.database.mappers;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.openslx.bwlp.thrift.iface.ImagePermissions;

public class DbImagePermissions {

	/**
	 * Build an instance of {@link ImagePermissions} by reading the given
	 * columns from the given {@link ResultSet}. If there are no permissions
	 * given in the ResultSet, <code>null</code> is returned.
	 * 
	 * @param rs the {@link ResultSet} to read from
	 * @param canLink Name of the column to read the "can link" permission from
	 * @param canDownload Name of the column to read the "can download"
	 *            permission from
	 * @param canEdit Name of the column to read the "can edit" permission from
	 * @param canAdmin Name of the column to read the "can admin" permission
	 *            from
	 * @return instance of {@link ImagePermissions}, or <code>null</code>
	 * @throws SQLException
	 */
	private static ImagePermissions fromResultSet(ResultSet rs, String canLink, String canDownload,
			String canEdit, String canAdmin) throws SQLException {
		byte link = rs.getByte(canLink);
		if (rs.wasNull())
			return null;
		return new ImagePermissions(link != 0, rs.getByte(canDownload) != 0, rs.getByte(canEdit) != 0,
				rs.getByte(canAdmin) != 0);
	}

	/**
	 * Build an instance of {@link ImagePermissions} by reading the
	 * columns <code>canlink</code>, <code>candownload</code>,
	 * <code>canedit</code>, <code>canadmin</code> from the given
	 * {@link ResultSet}. If there are no permissions
	 * given in the ResultSet, <code>null</code> is returned.
	 * 
	 * @param rs the {@link ResultSet} to read from
	 * @return instance of {@link ImagePermissions}, or <code>null</code>
	 * @throws SQLException
	 */
	public static ImagePermissions fromResultSetUser(ResultSet rs) throws SQLException {
		return fromResultSet(rs, "canlink", "candownload", "canedit", "canadmin");
	}

	/**
	 * Build an instance of {@link ImagePermissions} by reading the
	 * columns <code>canlinkdefault</code>, <code>candownloaddefault</code>,
	 * <code>caneditdefault</code>, <code>canadmindefault</code> from the given
	 * {@link ResultSet}. If there are no permissions
	 * given in the ResultSet, <code>null</code> is returned.
	 * 
	 * @param rs the {@link ResultSet} to read from
	 * @return instance of {@link ImagePermissions}, or <code>null</code>
	 * @throws SQLException
	 */
	public static ImagePermissions fromResultSetDefault(ResultSet rs) throws SQLException {
		return fromResultSet(rs, "canlinkdefault", "candownloaddefault", "caneditdefault", "canadmindefault");
	}

}