#!/bin/sh

source defs

PRO="#ifndef __file_h\n#define __file_h\n"
EPI="#endif\n"
INC="#include <file.h>\n"
MEMINC="#ifdef __MEMBER_H\n#include __MEMBER_H\n#endif\n"

FAM="class Family
{
public:
    Family();
    Family(const Id & id);
    Family(const Family & family);
    ~Family();

    const Id & id();
    bool valid();
};\n"

MEM="class Member
{
public:
    Member();
    Member(const Id & id);
    Member(const Member & member);
    ~Member();

    const Id & id();
    bool valid();
};\n"

if (( $# < 2 )); then
    echo "usage: `basename $0` <type> <family> <member> [<member>]"
    exit 1
fi

type="interface"
family=$2
shift 2
members="$*"

echo -e "`echo "$PRO" | rep File "$family"`"
echo -e "`echo "$INC" | rep File Config`" 
echo -e "`begns`\n" 
echo -e "`echo "$FAM" | rep Family "$family"`" 
for member in $members; do
    echo -e "`echo "$MEM" | rep Member "$member"`" 
done
echo -e "`endns`\n" 
for member in $members; do
    echo -e "`echo "$MEMINC" | rep Member "$member"`" 
done
echo -e "$EPI" 

exit 0
