package jondo;

import anon.util.AbstractMemorizingPasswordReader;

public abstract class AbstractPasswordReader
{
	private AbstractMemorizingPasswordReader m_passwordReader;
	
	public AbstractPasswordReader()
	{
		m_passwordReader = new AbstractMemorizingPasswordReader()
		{
			protected void initPasswordDialog(Object a_message)
			{
				AbstractPasswordReader.this.initPasswordDialog(a_message);
			}
			
			protected String readPassword()
			{
				return AbstractPasswordReader.this.readPassword();
			}
			
			protected boolean askForCancel()
			{
				return AbstractPasswordReader.this.askForCancel();
			}
		};
	}
	
	protected final AbstractMemorizingPasswordReader getPasswordReader()
	{
		return m_passwordReader;
	}
	
	protected abstract void initPasswordDialog(Object a_message);
	
	protected abstract String readPassword();
	
	protected abstract boolean askForCancel();
	
	public static class DummyPasswordReader extends AbstractPasswordReader
	{
		private String m_password;
		
		public DummyPasswordReader()
		{
			
		}
		
		public DummyPasswordReader(String a_password)
		{
			m_password = a_password;
		}
		
		protected void initPasswordDialog(Object a_message)
		{
			// ignore
		}
		
		protected String readPassword()
		{
			return m_password;
		}
		
		protected boolean askForCancel()
		{
			return true;
		}
	}	
}
