El ùnico problema es que asumes que las clases no existen ya en la imagen a
las que las vas a subir, y ese puede no ser el caso.

Creo que es màs inteligente asumir que existe un paquete que agrupa clases
relacionadas y que està versionado. Al versionarlo sè que si subo el paquete
XXX-v.2.0, debo primero eliminar el paquete XXX-v1.0.

Entonces puedes establecer dependencias entre paquetes junto con sus
versiones.

El caso que quieres resolver es sólo còmo guardar un paquete de manera que
luego al leerlo las clases suban en el orden correcto, y creo que dado los
requerimientos que hiciste, la respuesta es simplemente recorrer las clases
del paquete, anotar las dependencias y guardar sòlo las clases:

1. Que no tienen dependencias.
2. Cuyas dependencias ya estàn guardadas.

Una simplificaciòn equivalente del algoritmo anterior:

1. Guarda todas las clases del paquete en un set.
2. Saca una clase del set. Si la clase tiene dependencias, llama
recursivamente a guardar su dependencia.
3. Guarda la clase en el archivo (file-out).
4. Cuando no hay màs clases en el set, termina.
5. Goto 2

Saludos,
Guillermo.

2010/12/20 Andres Valloud <[email protected]>

> A ver... supongan la siguiente jerarquia de clases:
>
> A1
>  B1
>    C1
>    C2
>      D1
>  B2
>    C3
>      D2
>      D3
>      D4
>    C4
>
> Cuantas maneras hay de hacer un fileout de las definiciones de clase
> de tal manera que se pueda hacer un file in en otra imagen?  O sea, el
> problema es que no se puede hacer un file out de C4 antes de B2 porque
> si no cuando se hace file in de C4, su superclase B2 no existe.
>
> Es mas o menos facil encontrar una cota inferior.  Haciendo breadth
> first, hay 4 layers de clases con tamaños 1, 2, 4 y 4.  Por lo tanto,
> hay por lo menos 1! x 2! x 4! x 4! = 1152 maneras de hacer un file out
> correctamente.  Sin embargo, cuando busque exhaustivamente, encontre
> 18900 ordenes diferentes.  Pero bueno, 18900 es 2^2 * 3^3 * 5^2 * 7.
> Entonces, pregunta... alguien sabe como calcular el numero de posibles
> file outs sin tener que buscar exhaustivamente?  Es mas o menos claro
> que ese numero es el numero posible de traversals de un tree.  Como se
> calcula eso?  Hay algun resultado ya hecho?
>
> Andres.
>
> --
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]<clubsmalltalk%[email protected]>
>
> http://www.clubSmalltalk.org




-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]

http://www.clubSmalltalk.org

Responder a