ftp.nice.ch/peanuts/GeneralData/Documents/developer/dbkit/AdaptorDocu.tar.gz#/AdaptorDocu/HeadersFromNext/DBRelationship.h

This is DBRelationship.h in view mode; [Download] [Up]

/*
**      DBRelationship.h
**      Database Kit, Release 3.0
**      Copyright (c) 1992, NeXT Computer, Inc.  All rights reserved. 
*/

#import <objc/Object.h>
#import <dbkit/protocols.h>

@class List;
@class DBAttribute;

/*
** DBRelationship represents a linkage between two attributes, which can
**  be either one-to-one or one-to-many.  The linkage is directional, that
**  is, there is no automatic inverse relationship.
**
** Relationships are typically used as part of a DBDataPath, where they are
**  used to "flatten" complex dataModels and to "decode" master-detail type
**  relationships.
*/
@interface DBRelationship : Object <DBProperties, DBExpressionValues>
{
  id entity;

@private
  id _propertyNameExpr;
  id _internalNameExpr;		/* not used in SQL */
  id _aliasedNameExpr;

  id _source;			/* this is an attribute or a list */
  id _dest;			/* this is an attribute or a list */

  struct {
    BOOL singular:1;		/* is a to-many relation */
    BOOL readOnly:1;		/* is not updateable */
    BOOL key:1;                 /* relates as "foreign key" to destination */
    BOOL outerJoin:1;		/* outer join used when joined */
    BOOL compound:1;            /* contains multiple associations */
    BOOL hidden:1;		/* is relationship invisible in browsers? */
    BOOL lazyHint:1;		/* is traversing relationship expensive? */
    int _RESERVED:9;
  } _flags;
}

- initWithName:(const char*)aName forEntity:(id<DBEntities>)anEntity;
- copyFromZone:(NXZone*)z;
- free;

- (List*)getSourceAttributes:(List*)aList;
- (List*)getDestinationAttributes:(List*)aList;
- addAssociationFrom:(DBAttribute*)source to:(DBAttribute*)dest;
- removeAssociationAt:(unsigned)anIndex;

- (BOOL)isAggregate;
- (BOOL)isOuterJoin;
- (BOOL)isHidden;
- (BOOL)isLazy;
- useOuterJoin:(BOOL)yn;
- setSingular:(BOOL)yn;
- setReadOnly:(BOOL)yn;
- setKey:(BOOL)yn;
- setHidden:(BOOL)yn;
- setLazyHint:(BOOL)yn;

- setInternalName:(const char*)newInternalName;
- (const char*)internalName;

- read:(NXTypedStream*)ts;
- write:(NXTypedStream*)ts;

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.